报错信息:caused by: org.apache. commons. fileupload. FileUploadBasessizeLimitExceededException:herequest was reje

because its size (23205293) exceeds the configured maximum(20971520)

一:使用的包commons-fileupload-1.5.jar

二:问题排查:网上搜资料说是springboot默认的上传文件大小是1MB,

1.需要在application.yml或application.properties文件中加添加如下配置

spring:

  servlet:

      multipart:

         enabled:true ##开启http上传处理

         max-file-size:  50MB  #单个文件最大限制

         max-request-size:  200MB  #最大请求文件大小

         #file-size-threshold: 0 #当文件达到多少时进行磁盘写入,设置0代表不设限;最后这种并没有用到,只是记录一下

 

2.如果配置未生效,可以添加Bean("multipartResolver")

代码如下:

@Bean("multipartResolver")

@Qualifier("multipartResolver")

@Primary

CommonsMultipartResolver multipartResolver(){

CommonsMultipartResolver commonsMultipartResolver = new CommonsMultipartResolver();

commonsMultipartResolver.setDefaultEncoding("UTF-8");

commonsMultipartResolver.setMaxUploadSize(150*1024*1024L);//150MB

return commonsMultipartResolver;

}

 

三:以上两种方式都尝试了,还是不行,后面发现在引入的别的项目jar包中已经存在第二种方式的Bean了,配置被覆盖。

1.针对以上情况将现有配置排除在外,在Application.java的启动类上加入注解@ComponentScan(value="com.java",excludeFilters={@ComponentScan.Filter(type=FilterType.REGEX,pattern="com.java.config.MultipartConfig")})//pattern是引入项目的bean配置的.java路径

排除后,重写bean("multipartResolver"),在重写的bean中加入自己想要的配置即可。

 

2.如果是springboot的包要排除则用如下注解@EnableAutoConfiguration(exclude={MultipartAutoConfiguratiin.class})

例如:spring-boot-autoconfigure-2.5.12.jar

 

 

以上是项目中的配置,如果有使用网关和nigix,那么这两个地方也需要

 

 

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐