报错信息: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,那么这两个地方也需要