我正在使用Primefaces v6.2.13上传文件。对于带扩展名的文件效果很好,但是在尝试上传不带扩展名的文件时会崩溃。
这是xhtml用于呈现上传按钮的部分
<p:fileUpload value="#{addFileController.file}"
mode="simple" skinSimple="true"
rendered="#{!addFileController.uploadDisable}"
label="Choose file"
allowTypes="#{addfileController.allowedTypes}" />
当我选择文件时,什么也没有发生,但是当我单击上载按钮时,它引发了一个错误,我无法捕获我的代码,因为它首先在PrimeFaces中调用了某种上载机制,随后又调用了我写了。
错误是:
javax.faces.FacesException: File must have an extension
at org.primefaces.util.FileUploadUtils.getValidFilename(FileUploadUtils.java:54)
并且类内部代码中有问题的部分看起来像这样
...
String name = FilenameUtils.getName(filename);
String extension = FilenameUtils.EXTENSION_SEPARATOR_STR + FilenameUtils.getExtension(filename);
if (extension.isEmpty()) {
throw new FacesException("File must have an extension");
}
....
}
有人知道如何处理吗?我正在考虑向xhtml添加一些属性以禁止上传不带扩展名的文件,因为我不想编辑PF源代码。