天天看点

记自己的疏忽踩死的坑 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同时配置上上面的配置信息。惨痛疏忽

继续阅读