fileStorageUploadField
fileStorageUploadField позволяет пользователям загружать файлы в Jmix хранилище файлов.
XML-элемент |
|
|---|---|
Java-класс |
|
Основы
Компонент может содержать надпись, ссылку на загруженный файл и кнопку загрузки. При нажатии на кнопку загрузки появляется стандартное диалоговое окно выбора файла, позволяющее пользователю выбрать файл.
fileStorageUploadField может работать как без привязки к атрибуту сущности, так и с привязка данных.
Ниже мы покажем пример использования компонента без привязки данных. Вы можете использовать его для непосредственной обработки загруженного файла, не связывая его ни с какой сущностью Jmix.
<fileStorageUploadField id="fileRefField"
acceptedFileTypes=".txt, .csv"
fileStoragePutMode="MANUAL"
fileNameVisible="true"/>
Затем вы можете обрабатывать загруженный файл непосредственно в обработчике события FileUploadSucceededEvent.
|
Чтобы хранить файл в атрибуте сущности в виде массива байтов вместо Для одновременной загрузки нескольких файлов следует использовать компонент upload вместо |
Внутренне fileStorageUploadField использует Vaadin API UploadHandler. По умолчанию загруженный файл сразу сохраняется в FileStorage по умолчанию. Чтобы управлять сохранением файла программно, используйте атрибут fileStoragePutMode.
|
fileStorageUploadField связанный с данными
fileStorageUploadField позволяет пользователям загружать файл в хранилище файлов и связывать его с атрибутом сущности как объект FileRef.
В примере ниже атрибут picture сущности User имеет тип FileRef.
@Column(name = "PICTURE", length = 1024)
private FileRef picture;
<data>
<instance id="documentDc" class="io.jmix.uisamples.entity.Document">
</instance>
</data>
<layout>
<fileStorageUploadField id="fileStorageUploadField" label="Select File"
dataContainer="documentDc" property="content"
fileNameVisible="false"
dropAllowed="true"
maxFileSize="51200"
fileStoragePutMode="MANUAL"
/>
</layout>
@ViewComponent
private FileStorageUploadField fileStorageUploadField;
@Autowired
private TemporaryStorage temporaryStorage;
@Autowired
private Notifications notifications;
// This handler is needed only when fileStoragePutMode="MANUAL".
// In AUTO mode the field automatically moves the uploaded file from temporary storage
// to the FileStorage and sets the returned FileRef to the entity attribute.
@Subscribe("fileStorageUploadField")
public void onFileStorageUploadFieldFileUploadSucceeded(
final FileUploadSucceededEvent<FileStorageUploadField, TemporaryStorage.FileInfo> event) {
UUID fileId = event.getData().getId();
File file = temporaryStorage.getFile(fileId);
if (file != null) {
FileRef fileRef = new FileRef("tempStorage", file.getAbsolutePath(), file.getName());
fileStorageUploadField.setValue(fileRef);
notifications.create("Your file %s has been uploaded successfully.".formatted(event.getFileName()))
.withThemeVariant(NotificationVariant.LUMO_PRIMARY)
.show();
// Remove the uploaded file.
// In a real-world application you would move the file to FileStorage here using
// the temporaryStorage.putFileIntoStorage() method.
temporaryStorage.deleteFile(fileId);
}
}
fileStorageUploadField имеет ссылку на контейнер, указанный в атрибуте dataContainer; атрибут property содержит имя атрибута сущности, который отображается в fileStorageUploadField.
Атрибуты
fileStorageUploadField имеет следующие уникальные атрибуты:
| Имя | Описание | По умолчанию |
|---|---|---|
Указывает типы файлов, которые принимает сервер. |
— |
|
Устанавливает атрибут |
— |
|
Определяет, отображается ли в поле кнопка очистки. |
|
|
Устанавливает статус, отображаемый при подключении диалогового окна загрузки. |
— |
|
Устанавливает, поддерживает ли компонент удаление файлов для загрузки. |
— |
|
Атрибут |
— |
|
Устанавливает текст, отображаемый, когда файл не выбран. |
— |
|
Устанавливает имя FileStorage, в которое будет помещен загружаемый файл. |
— |
|
Устанавливает режим, определяющий, когда файл будет помещен в FileStorage. |
— |
|
Устанавливает сообщение, отображаемое, когда файл превышает максимальный размер. |
— |
|
Устанавливает сообщение, отображаемое, когда тип файла не принимается. |
— |
|
Указывает максимальный размер файла в байтах, разрешенный для загрузки. |
— |
|
Устанавливает статус, отображаемый во время обработки загруженного файла. |
— |
|
Устанавливает текст, используемый для отображения оставшегося времени загрузки. |
— |
|
Устанавливает текст, отображаемый, когда оставшееся время загрузки невозможно вычислить. |
— |
|
Устанавливает текст кнопки отмены диалога загрузки. |
— |
|
Устанавливает заголовок диалога загрузки. |
— |
|
Устанавливает значок для кнопки загрузки. |
— |
|
Устанавливает текст, отображаемый на кнопке загрузки. |
— |
fileStorageUploadField имеет следующие общие атрибуты:
id - alignSelf - classNames - colspan - css - dataContainer - enabled - errorMessage - height - helperText - label - maxHeight - maxWidth - minHeight - minWidth - property - readOnly - required - requiredMessage - visible - width
Обработчики
fileStorageUploadField имеет следующие уникальные обработчики:
| Имя | Описание |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
Проверяет значение компонента. |
fileStorageUploadField имеет следующие общие обработчики:
Элементы
Компонент fileStorageUploadField может содержать следующие вложенные элементы: tooltip и uploadIcon.