Разрешить загрузку других файлов после исключения FileSizeLimitExceededException только для одного файла - PullRequest
1 голос
/ 13 мая 2019

Я установил сервер приложений с помощью Springboot, который позволяет загружать несколько файлов.Я настроил application.properties, используя следующее:

spring.servlet.multipart.max-file-size=10MB
spring.servlet.multipart.max-request-size=20MB

При выполнении запроса с помощью почтальона я загружаю 3 файла под ключом «files» Postman FORM DATA

File-1 is 11MB
File-2 is 1MB
File-3 is 1MB

Запрос не выполняется со следующей ошибкой:

"message": "Maximum upload size exceeded; nested exception is java.lang.IllegalStateException: org.apache.tomcat.util.http.fileupload.FileUploadBase$FileSizeLimitExceededException: The field files exceeds its maximum permitted size of 10485760 bytes."

Я понимаю, что это из-за ограничения размера сервера.Но есть ли способ обработать исключение таким образом, что из загрузки исключается только 1 файл, а остальные разрешены.

Попытка с обработчиком исключения извлечь запрос.Но этот обработчик применяется к общему запросу, в результате чего все файлы пропускаются.

@PostMapping("/file-upload-service/file-uploader")
public List<UploadFileResponse> uploadMultipleFiles(@RequestParam String destination, @RequestParam("files") MultipartFile[] files) throws FileStorageException {
        logger.info("Uploading multiple files...");
        Date uploadDate = new Date();
        logger.info("Upload operation started at {}", uploadDate);
        return Arrays.asList(files)
                .stream()
                .map(file -> uploadFile(destination, file))
                .collect(Collectors.toList());
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...