How to set the max size of upload file

前端 未结 16 665
没有蜡笔的小新
没有蜡笔的小新 2020-12-04 12:13

I\'m developing application based on Spring Boot and AngularJS using JHipster. My question is how to set max size of uploading files?

If I\'m trying

相关标签:
16条回答
  • 2020-12-04 12:28

    These properties in spring boot application.properties makes the acceptable file size unlimited -

    # To prevent maximum upload size limit exception
    spring.servlet.multipart.max-file-size=-1
    spring.servlet.multipart.max-request-size=-1
    
    0 讨论(0)
  • 2020-12-04 12:29

    For Spring Boot 2.+, make sure you are using spring.servlet instead of spring.http.

    ---
    spring:
      servlet:
        multipart:
          max-file-size: 10MB
          max-request-size: 10MB
    

    If you have to use tomcat, you might end up creating EmbeddedServletContainerCustomizer, which is not really nice thing to do.

    If you can live without tomat, you could replace tomcat with e.g. undertow and avoid this issue at all.

    0 讨论(0)
  • 2020-12-04 12:30

    You need to set the multipart.maxFileSize and multipart.maxRequestSize parameters to higher values than the default. This can be done in your spring boot configuration yml files. For example, adding the following to application.yml will allow users to upload 10Mb files:

    multipart:
        maxFileSize: 10Mb
        maxRequestSize: 10Mb
    

    If the user needs to be able to upload multiple files in a single request and they may total more than 10Mb, then you will need to configure multipart.maxRequestSize to a higher value:

    multipart:
        maxFileSize: 10Mb
        maxRequestSize: 100Mb
    

    Source: https://spring.io/guides/gs/uploading-files/

    0 讨论(0)
  • 2020-12-04 12:31

    In Spring Boot 2 the spring.http.multipart changed to spring.servlet.multipart

    https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-2.0.0-M1-Release-Notes#multipart-configuration

    0 讨论(0)
  • 2020-12-04 12:33

    Also in Spring boot 1.4, you can add following lines to your application.properties to set the file size limit:

    spring.http.multipart.max-file-size=128KB
    spring.http.multipart.max-request-size=128KB
    

    for spring boot 2.x and above its

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

    Worked for me. Source: https://spring.io/guides/gs/uploading-files/

    UPDATE:

    Somebody asked the differences between the two properties.

    Below are the formal definitions:

    MaxFileSize: The maximum size allowed for uploaded files, in bytes. If the size of any uploaded file is greater than this size, the web container will throw an exception (IllegalStateException). The default size is unlimited.

    MaxRequestSize: The maximum size allowed for a multipart/form-data request, in bytes. The web container will throw an exception if the overall size of all uploaded files exceeds this threshold. The default size is unlimited.

    To explain each:

    MaxFileSize: The limit for a single file to upload. This is applied for the single file limit only.

    MaxRequestSize: The limit for the total size of all files in a single upload request. This checks the total limit. Let's say you have two files a.txt and b.txt for a single upload request. a.txt is 5kb and b.txt is 7kb so the MaxRequestSize should be above 12kb.

    0 讨论(0)
  • 2020-12-04 12:33

    To avoid this exception you can take help of VM arguments just as I used in Spring 1.5.8.RELEASE:

    -Dspring.http.multipart.maxFileSize=70Mb
    -Dspring.http.multipart.maxRequestSize=70Mb
    
    0 讨论(0)
提交回复
热议问题