Я использую 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.