我正在尝试设置maxFileSize,但它没有兑现

Jos*_*ano 37 spring-boot jhipster

我正在使用JHipster开发一个应用程序.我已将以下内容添加到application-dev.yml文件中:

spring:

    profiles:
        active: dev

    multipart:
        maxFileSize: -1
Run Code Online (Sandbox Code Playgroud)

但是当我尝试上传> 1MB的文件时,我仍然收到错误:

Caused by: org.apache.tomcat.util.http.fileupload.FileUploadBase$SizeLimitExceededException: the request was rejected because its size (20663006) exceeds the configured maximum (10485760)
Run Code Online (Sandbox Code Playgroud)

我错过了什么?看来这应该是非常直截了当的.

更新1

spring按照安迪的建议从配置中取消了它,但仍然得到了错误.更新了yml文件:

server:
    port: 8080

multipart:
        maxFileSize: -1

spring:

    profiles:
        active: dev

    datasource: ...
Run Code Online (Sandbox Code Playgroud)

更新2

在较新版本的Sprint Boot上再次讨论这个问题,不得不改为:

spring:
    http:
        multipart:
            max-file-size: 30MB
            max-request-size: 30MB
Run Code Online (Sandbox Code Playgroud)

And*_*son 103

除了配置最大文件大小之外,如果您有一个大于10MB的文件,或者您希望在同一请求中上传多个文件,并且大小超过10MB,则可能还需要配置最大请求大小.

需要使用的确切属性取决于您在1.4中更改时使用的Spring Boot版本:

Spring Boot 1.3.x及更早版本

  • multipart.maxFileSize
  • multipart.maxRequestSize

Spring Boot 1.4.x和1.5.x

  • spring.http.multipart.maxFileSize
  • spring.http.multipart.maxRequestSize

Spring Boot 2.x

  • spring.servlet.multipart.maxFileSize
  • spring.servlet.multipart.maxRequestSize

  • @christopher我已经更新了我的答案,以反映不同版本的Spring Boot使用的不同属性 (4认同)
  • 在我的情况下,唯一的解决方案是设置“ spring.servlet.multipart.maxFileSize”和“ spring.servlet.multipart.maxRequestSize”属性,因为配置是由“ org.springframework.boot.autoconfigure.web.servlet.MultipartProperties”完成的 (2认同)

Mak*_*min 8

对于 spring-boot 2.x,文件:src/main/resources/application.yaml

spring:
  servlet:
    multipart:
      max-file-size: -1
      max-request-size: -1
Run Code Online (Sandbox Code Playgroud)