Spring Boot文件分段接受一半的允许大小

问题描述

我写了一个如下的控制器:

@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)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...