Загрузка файла Primefaces - файл без расширения - PullRequest
0 голосов
/ 13 февраля 2019

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

...