upload
upload позволяет пользователям загружать один или несколько файлов. Он отображает ход загрузки и состояние каждого файла. Файлы можно загрузить, нажав кнопку Загрузить файлы или перетащив их на компонент.
XML-элемент |
|
|---|---|
Java-класс |
|
Основы
Пример использования upload:
<upload id="upload"
dropAllowed="true"
maxFileSize="10000"
uploadHandlerType="IN_MEMORY"
maxFiles="3"
/>
Автозагрузка
Атрибут autoUpload определяет, должны ли файлы загружаться автоматически сразу после выбора или же пользователю необходимо явно инициировать загрузку.
-
Если значение
true, файлы загружаются сразу после выбора. Отображается индикатор прогресса загрузки, и пользователь может отменить загрузку, если это необходимо. -
Если значение
false, файлы не загружаются автоматически. Пользователю необходимо нажать кнопку Upload, чтобы запустить процесс загрузки.
Значение по умолчанию - true.
Drag & Drop
Компонент upload поддерживает функциональность перетаскивания, позволяя пользователям загружать файлы, просто перетаскивая их из своей файловой системы и сбрасывая на компонент.
Перетаскивание файлов включено по умолчанию. Чтобы отключить его, установите атрибут dropAllowed в значение false.
Атрибут dropLabel позволяет настроить сообщение, которое подсказывает пользователям сбросить файлы в область загрузки.
Значение атрибута может быть либо самим текстом, либо ключом в пакете сообщений. В случае ключа, значение должно начинаться с префикса msg://.
Атрибут dropLabelIcon позволяет указать иконку, который будет отображаться вместе с текстом dropLabel.
<upload dropLabel="Drop files here to upload"
dropLabelIcon="vaadin:cloud-upload-o"/>
Лимит файлов
По умолчанию upload не имеет ограничения на количество загружаемых файлов. Вы можете установить ограничение на количество файлов, используя атрибут maxFiles.
Этот атрибут задаёт максимальное количество файлов для загрузки. Если значение установлено в единицу, то стандартный файловый браузер не позволит выбрать несколько файлов.
Исключения, которые возникают, по умолчанию не отображаются в пользовательском интерфейсе. Используйте событие FileRejectedEvent для перехвата этих исключений и, например, уведомление, чтобы проинформировать пользователя о проблеме.
@Autowired
private Notifications notifications;
@Subscribe("upload")
public void onUploadFileRejected(final FileRejectedEvent event) {
notifications.create(event.getErrorMessage())
.withThemeVariant(NotificationVariant.WARNING)
.withDuration(5000)
.show();
}
Атрибуты
upload имеет следующие уникальные атрибуты:
| Имя | Описание | По умолчанию |
|---|---|---|
Задаёт допустимые типы файлов. |
— |
|
Устанавливает, разрешает ли компонент начинать загрузку сразу после выбора файлов. См. Auto-Upload. |
|
|
Определяет, могут ли пользователи перетаскивать файлы в область загрузки. |
— |
|
Указывает метку удаления, которая будет отображаться как сообщение пользователю о необходимости удаления файлов в компоненте |
— |
|
Устанавливает значок для метки перетаскивания. Значок отображается, когда пользователь может перетаскивать файлы в этот компонент |
— |
|
Задаёт максимальный размер файла. |
— |
|
Указывает максимальное количество файлов для загрузки. См. Количество файлов. |
unlimited |
|
Устанавливает полное имя реализации пользовательского обработчика загрузки для этого компонента |
— |
|
Указывает тип встроенного обработчика загрузки. Возможные значения: * |
|
|
Задаёт значок загрузки. |
— |
|
Задаёт текст загрузки. |
— |
upload имеет следующие общие атрибуты:
Обработчики
upload имеет следующие уникальные обработчики:
| Имя | Описание |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Запускается после успешной загрузки файла. Событие предоставляет загруженные данные через |
upload имеет следующие общие обработчики:
Элементы
Компонент upload может содержать следующие вложенные элементы: uploadIcon и dropLabelIcon.