Java Spring引导文件多部分接受允许大小的一半

Java Spring引导文件多部分接受允许大小的一半,java,spring-boot,tomcat,file-upload,multipartfile,Java,Spring Boot,Tomcat,File Upload,Multipartfile,我编写了一个控制器,如下所示: @PostMapping(value="/upload", produces = "application/json") @ApiOperation("Upload") @ApiIgnore public ResponseEntity<ResponseObject> fileUpload( @RequestParam(value="file") Multip

我编写了一个控制器,如下所示:

@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",required=false, defaultValue="0") String approvalDeatils) throws Exception{
    return uploadService.uploader(file,code,approvalDeatils);
}
但我可以上传高达15MB的文件 编辑: Spring启动版本:2.0.1。第一个潜在原因:

可能与您正在使用的spring boot版本有关

多部分属性已根据版本进行更改

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。第三个潜在原因:

如果您将打包为war并在tomcat上部署,请确保tomcat允许适合您的用例的
maxPostSize

在conf\server.xml中:


@M.Mas。 1.我使用的是spring boot 2.0.1。 2.不依赖内存,即使我减少到8MB,仍然可以接受~4MB。 3.它没有部署在WAR文件上,我正在调试。 我上传了一个16.8MB的文件,它引发了以下异常:

org.apache.tomcat.util.http.fileupload.FileUploadBase$SizeLimitExceedeException:请求被拒绝,因为其大小(33542171)超过了配置的最大值(31457280)


将server.tomcat.max http post size=30MB添加到属性文件。@M.Mas。我补充说,没有改变。你确定你的文件大小小于30MB吗。从例外情况看,您的文件高于30MB?@M.Mas。是的,例如,我有一个16.8MB的文件,不允许有30MB的限制!文件类型为CSV。
spring.servlet.multipart.max-file-size=-1
spring.servlet.multipart.max-request-size=-1 
<Connector port="80" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443"
                maxPostSize="67589953" />