upload 上传
upload
支持用户上传文件。能显示上传进度以及每个文件的状态。文件可以通过点击 Upload files(上传文件) 按钮或者拖拽的方式上传。
-
XML 元素:
upload
-
Java 类:
JmixUpload
XML 属性
id - acceptedFileTypes - autoUpload - classNames - dropAllowed - dropLabel - dropLabelIcon - height - maxFileSize - maxFiles - maxHeight - maxWidth - minHeight - minWidth - receiverFqn - receiverType - uploadIcon - uploadText - visible - width
maxFiles
设置允许用户上传的最大文件个数,默认无限制。如果设置为 1,则系统原生的文件选择器将不允许选择多个文件。
默认不会在 UI 显示文件上传的异常。请使用 FileRejectedEvent 捕捉异常,然后可以使用通知为用户展示异常。
receiverFqn
设置一个接收器(Receiver
)的实现,用于接收 upload
组件上传的文件。
如果接收器未实现 MultiFileReceiver ,则 upload 组件自动设置为仅接受单文件上传。
|
事件和处理器
AllFinishedEvent - AttachEvent - DetachEvent - FailedEvent - FileRejectedEvent - FinishedEvent - ProgressUpdateEvent - StartedEvent - SucceededEvent - receiver
在 Jmix Studio 生成处理器桩代码时,可以使用 Jmix UI 组件面板的 Handlers 标签页或者视图类顶部面板的 Generate Handler 添加,也可以通过 Code → Generate 菜单(Alt+Insert / Cmd+N)生成。 |
AllFinishedEvent
com.vaadin.flow.component.upload.AllFinishedEvent
当 upload
组件处理完队列中所有的文件之后发送,无论上传是否成功。
FileRejectedEvent
@ViewComponent
private JmixUpload upload;
@Autowired
private Notifications notifications;
@Subscribe("upload")
public void onUploadFileRejected(final FileRejectedEvent event) {
notifications.create(event.getErrorMessage())
.show();
}
FinishedEvent
com.vaadin.flow.component.upload.FinishedEvent
当 upload
接收了文件后发送,不论是否成功。如需区别是否成功,请使用 SucceededEvent 或 FailedEvent,这两个都是 FinishedEvent
的子类。