spring boot 2 配置上传文件大小限制

一、起因:系统页面上传一个文件超过日志提示的文件最大100M的限制,需要更改配置文件

二、经过:

1、在本地代码中找到配置文件,修改相应数值后交给运维更新生产环境配置,但是运维说生产环境没有这行配置,遂硬着头皮让运维加上配置重启服务,调试发现配置仍未奏效

# 文件上传限制
spring.servlet.multipart.max-file-size=100MB
spring.servlet.multipart.max-request-size=1000MB

2、百度配置为什么不生效,以为需要再加一项配置,且把两个限制文件大小的值改为“-1”,表示不限制上传大小,配置后再次重启服务,调试发现配置仍未奏效

#配置文件传输
spring.servlet.multipart.enabled=true
spring.servlet.multipart.file-size-threshold=0
# 文件上传限制
spring.servlet.multipart.max-file-size=-1
spring.servlet.multipart.max-request-size=-1

参考文章:spring boot 2 上传文件大小限制的配置不生效解决方式

3、期间还以为是配置名称写错了

# 文件上传限制
#spring.servlet.multipart.maxFileSize=
spring.servlet.multipart.max-file-size=
#spring.servlet.multipart.maxRequestSize=
spring.servlet.multipart.max-request-size=

其实两种命名都可以的,他最终都会指向包里面的同一行对象,见下图

 进入到这个java文件后发现有点不对经的地方,他默认单个文件上传最大是1M

 又联系之前运维说生产环境的配置文件里面没有该行配置,而实际调试过程中最大上传限制是102400,发现关键点,先是代码里面搜,找到相应代码

 又百度了一下进行验证,果然是这里的配置生效了,遂修改大小,生产调试后成功

参考链接:spring.servlet.multipart配置不生效问题 - 知乎

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
限制Spring Boot应用程序中特定路径上传的文件大小,可以在应用程序的配置文件中添加以下配置: ``` spring.servlet.multipart.max-file-size=10MB spring.servlet.multipart.max-request-size=10MB ``` 上述配置会将上传的文件大小限制为10MB。 然后,为了限制特定路径下的上传文件大小,需要在应用程序中创建一个`MultipartConfigElement` bean,并将其应用于指定路径的控制器或方法。 例如,假设我们要限制路径`/upload`下的上传文件大小,我们可以在应用程序中添加以下代码: ```java @Configuration public class WebConfig { @Bean MultipartConfigElement multipartConfigElement() { long maxFileSize = 10 * 1024 * 1024; // 10MB long maxRequestSize = 10 * 1024 * 1024; int fileSizeThreshold = 0; return new MultipartConfigElement("/tmp", maxFileSize, maxRequestSize, fileSizeThreshold); } @Bean public WebMvcConfigurer webMvcConfigurer() { return new WebMvcConfigurerAdapter() { @Override public void addInterceptors(InterceptorRegistry registry) { registry.addInterceptor(new HandlerInterceptor() { @Override public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { if (request.getRequestURI().startsWith("/upload")) { request.setAttribute("org.apache.tomcat.websocket.DISPATCHER", true); request.setAttribute("multipartConfigElement", multipartConfigElement()); } return true; } }); } }; } } ``` 上述代码创建了一个`MultipartConfigElement` bean,并在`preHandle`方法中将其应用于路径以`/upload`开头的请求。 请注意,上述代码使用了过时的`WebMvcConfigurerAdapter`类。如果你使用的是Spring Boot 2.0或更高版本,则应该使用`WebMvcConfigurer`接口。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值