天天看點

記自己的疏忽踩死的坑 SpringBoot 上傳檔案時"Maximum length exceeded"錯誤的解決辦法第一種配置方法(application.yml)第二種配置方法(@Configuration) 最容易忽略的坑

     記一次在公司工作中踩得坑,項目使用的是Spring Boot(2.1.3RELEASE) + Spring Cloud,是以很自然我們必須考慮檔案上傳時,檔案大小設定的問題,是以配置方法網上有很多,常見的為兩種,一種通過在配置檔案(我的是application.yml),另外一種就是在啟動類上添加配置,廢話不多說直接上配置:

第一種配置方法(application.yml)

     SpringBoot2.0.x版本的配置方法:

servlet:
    multipart:
      enabled: true
      max-file-size: 30MB
      max-request-size: 30MB
           

     SpingBoot1.5.x版本的配置方法:

spring:
    http:
    multipart:
      max-file-size: 10MB
      max-request-size: 10MB
      enabled: true
           

     可以前往Springboot官網進行查詢學習。

第二種配置方法(@Configuration)

    在application啟動類上加上配置

 /**
     * 檔案上傳配置
     * 
     * @return
     */
    @Bean
    public MultipartConfigElement multipartConfigElement() {
        MultipartConfigFactory factory = new MultipartConfigFactory();
        //  單個資料大小
        factory.setMaxFileSize("30MB"); // KB,MB
        /// 總上傳資料大小
        factory.setMaxRequestSize("30MB");
        return factory.createMultipartConfig();
    }
           

 最容易忽略的坑

    如果通過上面的配置完成之後,還是報錯 Maximum upload size exceeded; nested exception is java.lang.IllegalStateException: org.apache.tomcat.util.http.fileupload.FileUploadBase$FileSizeLimitExceededException: The field file exceeds its maximum permitted size of 1048576 bytes. 

記自己的疏忽踩死的坑 SpringBoot 上傳檔案時"Maximum length exceeded"錯誤的解決辦法第一種配置方法(application.yml)第二種配置方法(@Configuration) 最容易忽略的坑

是不是感覺很納悶,配置大小檔案資訊我們已經有了呀,為什麼還是不行呢?

這個時候我們就要想一下了,若是有網關之類的中轉,需在網關中也加入如上配置    ,而我遇到的坑就是忘記了給網關zuul同時配置上上面的配置資訊。慘痛疏忽

繼續閱讀