我使用的是Sping Boot ,可以发送小于1MB的图像,但当我使用大于1MB的大图像发出post请求时,出现以下错误:
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版本,下面是我的帖子Map:
@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我尝试过的所有www.example.com配置:
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是捆绑在应用程序中的。
7条答案
按热度按时间zujrkrfu1#
在application.properties中为Sping Boot 版本2.0.0.RELEASE及更高版本添加以下行-
请注意,对于较低版本,即1.5.9.RELEASE及更低版本,配置通常如下所示:
ruoxqz4g2#
根据最新的Spring Boot Common properties,以下应工作
MULTIPART(多部分属性)
或者如果您只想控制multipart属性,则
multipart.max-file-size
和multipart.max-request-size
属性应该可以使用。lstz6jyr3#
依赖于Sping Boot 版本,例如1.X,在您的www.example.com上application.properties设置文件大小限制:
Spring Boot 2.x /以上版本:
xj3cbfub4#
这是我所拥有的,它对我的后端工作得很完美。
而在bootstrap.yml文件中,我只会有这样的东西...这将只允许最大文件大小为2兆字节。
最后,在我的HTML文件中,我会有这样的内容...
这应该工作得很好。我也在使用Sping Boot 2. 0. 3
ukxgm1gy5#
你试过这个吗?
或
适用于Sping Boot 1.5.x
rkue9o1l6#
wwtsj6pe7#
请参考
org.springframework.boot.autoconfigure.web.MutltipartProperties
类来了解在设置属性时使用什么前缀。以上所有命名约定适用于不同版本的springframework。