Загрузка файла Primefaces с загрузчиком apache-commons получает 413 запроса объекта слишком большой ответ - PullRequest
0 голосов
/ 25 июня 2019

Я использую Spring Boot 2.1.4. Выпуск, Primefaces 6.2, Java 11.

Я использую компонент загрузки файлов Primefaces, где режим загрузки установлен на commons.

При работе в тестовой среде при загрузке файла размером более 10 МБ обратный прокси-сервер nginx возвращает 413 Request Entity Too Large.Это связано с конфигурацией nginx client_max_body_size=10MB, которую мы хотим сохранить.Вместо изменения конфигурации, использование потоковой передачи для загрузки файла должно решить нашу проблему.Однако до сих пор я не мог заставить потоковую работу работать так, чтобы мы не получили этот ответ 413. Вот код:

Часть application.properties относительно загрузки файла

spring.servlet.multipart.enabled=false
joinfaces.primefaces.uploader=commons

IЯ использую компонент p: fileupload Primefaces

 <h:form id="documentUploadForm" enctype="multipart/form-data">
    <p:fileUpload id="fileUpload" widgetVar="fileUploadButton"
                  binding="#{uploadedDoc}" mode="advanced" auto="true"
                  fileUploadListener="#{projectController.documentController.fileUploadHandler}"
                  value="#{projectController.documentController.file}"
                  sizeLimit="2147483648" label="#{msg['file.choose']}"
                  onstart="if(#{!projectController.managed}) {disableUploadButton()}"
                  oncomplete="if(#{!projectController.managed}) {enableSubmitButton()}"
                  disabled="#{projectController.documentController.hasDocument}"
                  required="true"
                  update="fileSelectionPanel">
    </p:fileUpload>
</h:form>

На локальном хосте код успешно входит в FileUploadFilter, MiltipartRequest.Запрос анализируется в fileItems.Входит в CommonsFileUploadDecoder и успешно вызывает fileUploadHandler(FileUploadEvent event).Однако в тестовой среде ответ 413 возвращается куда-то перед вводом fileUploadHandler(FileUploadEvent event).

Буду очень признателен за совет.Заранее спасибо!Я могу предоставить вам любые детали.

...