允许在FileSizeLimitExceededException之后仅上传一个文件的其他文件

时间:2019-05-13 06:12:39

标签: spring-boot exception multifile-uploader

我已经使用springboot设置了应用程序服务器,该服务器允许上传多个文件。 我已经使用以下命令配置了application.properties:

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

使用邮递员运行请求时, 我正在名为“文件”的键下上传3个文件 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."

我了解这是由于提供了服务器的大小限制。 但是,有没有一种方法可以处理这种异常,例如,只有一个文件被排除在上传之外,而其他文件则被允许。

尝试使用异常处理程序来获取请求。 但是,此处理程序将应用于整个请求,从而导致所有文件都被跳过。

@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());
    }
}

0 个答案:

没有答案