FileMultiUploadField
Компонент FileMultiUploadField позволяет загружать файлы во временное хранилище. После этого их можно обработать как объекты File в файловой системе сервера или переместить в файловое хранилище.
При нажатии на кнопку отображается стандартное для операционной системы окно выбора файлов, в котором можно выбрать сразу несколько файлов для загрузки.
XML-имя компонента: fileMultiUpload.
Основы
Рассмотрим пример использования компонента.
Объявим компонент в XML-дескрипторе экрана:
<fileMultiUpload id="fileMultiUploadField"
caption="Upload"/>
(1)
@Autowired
private FileMultiUploadField fileMultiUploadField;
@Autowired
private TemporaryStorage temporaryStorage;
@Autowired
private Notifications notifications;
@Subscribe
public void onInit(InitEvent event) {
(2)
fileMultiUploadField.addQueueUploadCompleteListener(queueUploadCompleteEvent -> { (3)
for (Map.Entry<UUID, String> entry : fileMultiUploadField.getUploadsMap().entrySet()) { (4)
UUID fileId = entry.getKey();
String fileName = entry.getValue();
FileRef fileRef = temporaryStorage.putFileIntoStorage(fileId, fileName); (5)
}
notifications.create()
.withCaption("Uploaded files: " + fileMultiUploadField.getUploadsMap().values())
.show();
fileMultiUploadField.clearUploads(); (6)
});
fileMultiUploadField.addFileUploadErrorListener(queueFileUploadErrorEvent ->
notifications.create()
.withCaption("File upload error")
.show());
}
| 1 | В контроллере экрана определим сам компонент и интерфейс TemporaryStorage. |
| 2 | При инициализации экрана добавим слушателей, которые будут реагировать на события успешной загрузки или ошибки. |
| 3 | Компонент загружает выбранные файлы во временное хранилище и вызывает слушатель, добавленный методом addQueueUploadCompleteListener(). |
| 4 | В данном слушателе вызовом метода FileMultiUploadField.getUploadsMap() можно получить мэп идентификаторов файлов во временном хранилище на имена файлов. |
| 5 | Далее загружаемые файлы можно переместить из временного хранилища в постояное FileStorage и получить соответствующие объекты FileRef. |
| 6 | После обработки необходимо очистить список файлов вызовом clearUploads(). |
Слушатели
Компонент FileMultiUploadField имеет следующие слушатели, описанные в разделе компонента FileStorageUploadField:
Атрибуты
Компоненты FileMultiUploadField имеет следующие атрибуты, описанные в разделе компонента FileStorageUploadField:
Методы
-
getUploadsMap()- возвращаетMapс id файлов вTemporaryStorageна имена файлов. -
clearUploads()- очищает список загруженных файлов.
Все XML-атрибуты
accept - box.expandRatio - caption - captionAsHtml - colspan - contextHelpText - contextHelpTextHtmlEnabled - description - descriptionAsHtml - dropZone - dropZonePrompt - enable - css - fileSizeLimit - height - htmlSanitizerEnabled - icon - id - pasteZone - permittedExtensions - responsive - rowspan - stylename - tabindex - visible - width