【问题标题】:Spring boot file multipart accept half allowed sizeSpring Boot 文件多部分接受允许的一半大小
【发布时间】:2020-10-03 11:13:43
【问题描述】:

我写了一个控制器如下:

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

我在 application.porterties 进行了如下配置:

spring.servlet.multipart.max-file-size=30MB
spring.servlet.multipart.max-request-size=30MB

但我最多可以上传 ~15MB 的文件 编辑: Spring Boot 版本:2.0.1

【问题讨论】:

    标签: java spring-boot tomcat file-upload multipartfile


    【解决方案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.第三个潜在原因:

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

    在 conf\server.xml 中:

    <Connector port="80" protocol="HTTP/1.1"
                   connectionTimeout="20000"
                   redirectPort="8443"
                    maxPostSize="67589953" />
    

    【讨论】:

      【解决方案2】:

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

      【讨论】:

      • 将 server.tomcat.max-http-post-size=30MB 添加到您的属性文件中。
      • @M.Mas.我添加了,没有任何改变。
      • 您确定您的文件大小小于 30MB。您的文件是否高于 30MB?
      • @M.Mas.是的,例如,我有一个 16.8 MB 的文件,不允许使用 30MB 的限制!文件类型为 CSV。
      猜你喜欢
      • 1970-01-01
      • 2019-11-10
      • 2019-07-24
      • 2019-12-17
      • 2015-10-31
      • 2021-05-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多