首页 > 解决方案 > 在 FileSizeLimitExceededException 之后只允许一个文件上传其他文件

问题描述

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

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

使用邮递员运行请求时,我在名为“files”的键下上传 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());
    }
}

标签: spring-bootexceptionmultifile-uploader

解决方案


推荐阅读