问题描述
我写了一个如下的控制器:
@PostMapping(value="/upload",produces = "application/json")
@ApiOperation("Upload")
@ApiIgnore
public ResponseEntity<ResponSEObject> fileUpload(
@RequestParam(value="file") multipartfile file,@RequestParam (value="code",required=false,defaultValue="0")String code,@RequestParam (value="approvaldetails",defaultValue="0") String approvalDeatils) throws Exception{
return uploadService.uploader(file,code,approvalDeatils);
}
,我在application.porperties下方进行了配置:
spring.servlet.multipart.max-file-size=30MB
spring.servlet.multipart.max-request-size=30MB
但是我可以上传大约15MB的文件 编辑: 春季启动版本:2.0.1
解决方法
1。第一个潜在原因:
可能与您使用的 spring-boot 版本有关。
MULTIPART属性已根据版本进行了更改。
Spring Boot 1.3.x和更早版本
multipart.max-file-size
multipart.max-request-size
在Spring Boot 1.3.x之后:
spring.http.multipart.max-file-size=-1
spring.http.multipart.max-request-size=-1
在Spring Boot 2.0之后:
spring.servlet.multipart.max-file-size=-1
spring.servlet.multipart.max-request-size=-1
2。第二个潜在原因:
您的应用没有足够的内存来接收文件
3。第三个潜在原因:
如果您将战争包装并部署在tomcat上,请确保tomcat允许maxPostSize
适合您的用例。
在conf \ server.xml中:
<Connector port="80" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443"
maxPostSize="67589953" />
,
@ M.Mas。 1.我正在使用Spring Boot 2.0.1。 2.即使我减少到8MB,也不取决于内存,再次〜4MB是可以接受的。 3.它没有部署在WAR文件上,我正在调试。 我上传了一个16.8MB的文件,并引发以下异常:
org.apache.tomcat.util.http.fileupload.FileUploadBase $ SizeLimitExceededException:请求被拒绝,因为其大小( 33542171 )超出了配置的最大值(31457280)