如何在InputDialog中,定义上传文件组件后,获取上传文件名?

在InputDialog中定义了自定义参数,为上传文件组件,当点击ok时,请问如何通过closeEvent.getValue("")方法获取到上传的文件名?现在我只能获取到byte[]字节数组,但无法通过该数组获取文件名。
image

image

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 个赞

好的 感谢!