处理文件上传在Primefaces 6.2中不起作用

时间:2019-06-03 11:48:06

标签: java jsf primefaces

我最近将Primefaces版本更新为6.2,这样做之后,我发现文件上传已停止工作。下面是我的代码:

<p:fileUpload label="Choose (Max. 5Mb)" fileUploadListener="#{action.handleFileUpload}" mode="advanced" dragDropSupport="false" sizeLimit="6553600"
fileLimit="1" allowTypes="/(\.|\/)(xls|xlsx)$/" update=":dataUploadForm,:dataUploadForm:masterDataPanel" />

Java代码:

public void handleFileUpload(FileUploadEvent event) {
    try {
        UploadedFile uploadedFile = event.getFile();
        // do some processing
    } catch (Exception ex) {
        LOGGER_.error("", ex);
    }
}

根据下图,当我单击“选择”按钮时,它会打开一个对话框,允许您选择文件,而当我选择文件并单击“确定”时,什么也没有发生。但是,当我重新加载此页面然后执行相同的操作时,文件将成功上传。

enter image description here

我能够通过在Bean中创建数据类型为“ UploadedFile”的变量,然后按如下所示修改方法来解决该问题:

public void handleFileUpload(FileUploadEvent event) {
    try {
        UploadedFile uploadedFile = event.getFile();
        Bean.setUploadedFile(uploadedFile);
        // do some processing
    } catch (Exception ex) {
        LOGGER_.error("", ex);
    }
}

但是我认为这不是正确的方法,因为当并发用户上载重文件时,JVM可能由于重载而停止运行。除了这个问题,我们还有其他选择吗?

0 个答案:

没有答案