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