upload 上传
upload
支持用户上传一个或多个文件,并显示每个文件的上传进度和状态。可以通过单击 Upload files 按钮或将文件拖放至组件进行上传。
XML 元素 |
|
---|---|
Java 类 |
|
XML 属性 |
id - acceptedFileTypes - alignSelf - autoUpload - classNames - colspan - css - dropAllowed - dropLabel - dropLabelIcon - height - maxFileSize - maxFiles - maxHeight - maxWidth - minHeight - minWidth - receiverFqn - receiverType - uploadIcon - uploadText - visible - width |
事件和处理器 |
AllFinishedEvent - AttachEvent - DetachEvent - FailedEvent - FileRejectedEvent - FinishedEvent - ProgressUpdateEvent - StartedEvent - SucceededEvent - receiver |
自动上传
autoUpload
属性设置组件是否在用户选择了文件之后自动上传,或者是需要用户主动触发上传。
-
当设置为
true
时,文件会在选择后自动上传。此时会显示上传进度,用户还可以按需取消上传。 -
当设置为
false
时,文件不会自动上传。用户必须点击 Upload 按钮开始上传。
默认值为 true
。
拖放
upload
组件支持拖放功能,用户可以从文件系统直接拖拽文件至该组件实现上传。
拖放功能默认开启。如需禁用,请设置 dropAllowed 属性为 false
。
dropLabel
属性设置组件中引导用户拖放文件的文本。
该属性的值可以是一个纯文本,或 消息包 中的一个键值。如果是键值,需要以 msg://
开头。
dropLabelIcon
属性设置一个 dropLabel
文本旁边可以显示的图标。
<upload dropLabel="Drop files here to upload"
dropLabelIcon="vaadin:cloud-upload-o"/>
文件计数
默认情况下,upload
不限制用户可以上传的文件数量。可以通过 maxFiles
属性控制用户能上传的文件数。
设置允许用户上传的最大文件个数。如果设置为 1,则系统原生的文件选择器将不允许选择多个文件。
默认不会在 UI 显示文件上传的异常。请使用 FileRejectedEvent 捕捉异常,然后可以使用通知为用户展示异常。
@Autowired
private Notifications notifications;
@Subscribe("upload")
public void onUploadFileRejected(final FileRejectedEvent event) {
notifications.create(event.getErrorMessage())
.show();
}
接收器
receiverFqn
属性设置将会处理上传文件的 Java 类的全限定名称。该类必须实现 Receiver
接口。
如果接收器未实现 MultiFileReceiver ,则 upload 组件自动设置为仅接受单文件上传。
|
receiverType
属性指定处理上传文件的接收器类型。决定如何处理并存储上传的文件。可以是:
默认接收类型为 MemoryBuffer
。
XML 属性
事件和处理器
在 Jmix 中,所有组件都有一些 通用事件和处理器,可以按相同的方法设置。
下面是 upload
的特殊事件和处理器:
在 Jmix Studio 生成处理器桩代码时,可以使用 Jmix UI 组件面板的 Handlers 标签页或者视图类顶部面板的 Generate Handler 添加,也可以通过 Code → Generate 菜单(Alt+Insert / Cmd+N)生成。 |
名称 |
描述 |
---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
设置 |