Обработка загрузки файлов не работает в Primefaces 6.2 - PullRequest
2 голосов
/ 03 июня 2019

Я недавно обновил версию 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

Мне удалось решить проблему, создав переменную типа данных «UploadedFile» в Bean, а затем изменив метод, как показано ниже:

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

Но я не думаю, что это правильный подход, поскольку, когда параллельные пользователи будут загружать тяжелые файлы, JVM может быть остановлена ​​из-за большой нагрузки.Есть ли у нас альтернатива этой проблеме?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...