在InputDialog中定义了自定义参数,为上传文件组件,当点击ok时,请问如何通过closeEvent.getValue("")
方法获取到上传的文件名?现在我只能获取到byte[]
字节数组,但无法通过该数组获取文件名。
getValue()
方法只能取到自定义组件的值,对于上传组件,只能取到文件内容。文件名可以通过上传组件的事件设置并获取:
@Subscribe(id = "openDialogBtn", subject = "clickListener")
public void onOpenDialogBtnClick(final ClickEvent<JmixButton> event) {
final String[] fileName = new String[1];
dialogs.createInputDialog(this)
.withHeader("Enter values")
.withParameters(
parameter("file")
.withLabel("file")
.withField(() -> {
FileUploadField fuf = uiComponents.create(FileUploadField.class);
fuf.setFileNameVisible(true);
fuf.setClearButtonVisible(true);
fuf.addFileUploadSucceededListener((e)->{
fileName[0] = e.getFileName();
});
return fuf;
})
)
.withActions(DialogActions.OK_CANCEL).withCloseListener(closeEvent -> {
if (closeEvent.closedWith(DialogOutcome.OK)) {
byte[] file = closeEvent.getValue("file");
String uploadedFileName = fileName[0];
}
})
.open();
}
1 个赞
好的 感谢!