springboot上传文件报超出大小限制

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

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值