【发布时间】:2018-12-26 21:02:42
【问题描述】:
我正在使用 Spring Boot,我可以发送小于 1MB 的图像,但是当我使用大于 1MB 的大图像发出发布请求时,我收到此错误:
Maximum upload size exceeded; nested exception is java.lang.IllegalStateException:org.apache.tomcat.util.
http.fileupload.FileUploadBase$FileSizeLimitExceededException: The field file exceeds its maximum permitted size of 1048576 bytes.
我一直在四处寻找这个错误的答案。我查看了所有这些问题并尝试实施他们的建议无济于事:Spring upload file size limit, I am trying to set maxFileSize but it is not honored、org.apache.tomcat.util.http.fileupload.FileUploadBase$FileSizeLimitExceededException 和 Max Limit of MultipartFile in spring boot
我使用的是 Spring 2.0.3 版本,这是我的帖子映射:
@PostMapping("/post")
public ResponseEntity<String> handleFileUpload(@RequestParam("file") MultipartFile file) {
String message = "";
try {
storageService.store(file);
files.add(file.getOriginalFilename());
message = "You successfully uploaded " + file.getOriginalFilename() + "!";
return ResponseEntity.status(HttpStatus.OK).body(message);
} catch (Exception e) {
message = "FAIL to upload " + file.getOriginalFilename() + "!";
return ResponseEntity.status(HttpStatus.EXPECTATION_FAILED).body(message);
}
}
以下是我尝试过的所有 application.properties 配置:
1
spring.servlet.multipart.max-file-size=-1
spring.servlet.multipart.max-request-size=-1
2
spring.servlet.multipart.max-file-size=5MB
spring.servlet.multipart.max-request-size=5MB
3
spring.http.multipart.max-file-size=5MB
spring.http.multipart.max-request-size=5MB
4
multipart.max-file-size=5MB
multipart.max-request-size=5MB
5
server.tomcat.max-file-size=5000000
6
server.tomcat.max-http-post-size=5000000
7
spring.servlet.multipart.maxFileSize=-1
spring.servlet.multipart.maxRequestSize=-1
甚至尝试将其更改为 application.yml:
spring:
servlet:
multipart:
max-file-size: 5MB
max-request-size: 5MB
我还研究了在 web.xml 文件中更改 Tomcat 允许的请求大小,但我没有 web.xml 文件。我正在使用的 Tomcat 捆绑在应用程序中。
【问题讨论】:
-
您使用过任何网关吗?或任何其他服务将请求转发给您的实际请求。如果是,请从入口点到真正的服务一路添加
spring.servlet.multipart配置。 -
@TroyYoung - 对我来说就是这样。谢谢!
标签: java spring spring-boot tomcat spring-restcontroller