我已经使用springboot设置了应用程序服务器,该服务器允许上传多个文件。 我已经使用以下命令配置了application.properties:
spring.servlet.multipart.max-file-size=10MB
spring.servlet.multipart.max-request-size=20MB
使用邮递员运行请求时, 我正在名为“文件”的键下上传3个文件
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());
}
}