Java基础、中级、高级、架构面试资料

Spring Boot WebFlux 修改最大上传文件限制

JAVA herman 7705浏览 0评论
公告:“业余草”微信公众号提供免费CSDN下载服务(只下Java资源),关注业余草微信公众号,添加作者微信:xttblog2,发送下载链接帮助你免费下载!
本博客日IP超过2000,PV 3000 左右,急需赞助商。
极客时间所有课程通过我的二维码购买后返现24元微信红包,请加博主新的微信号:xttblog2,之前的微信号好友位已满,备注:返现
受密码保护的文章请关注“业余草”公众号,回复关键字“0”获得密码
所有面试题(java、前端、数据库、springboot等)一网打尽,请关注文末小程序
视频教程免费领
腾讯云】1核2G5M轻量应用服务器50元首年,高性价比,助您轻松上云

在刚才的那篇文章中,后台有人留言说,文件太大无法上传。哎,我刚写好的文章,还没好好欣赏呢?于是呢就有了本文,我们一起来搞定上传文件过大问题。

上传文件限制这个功能,大部分框架都有。WebFlux 这个框架也不例外。由于我们用的是 SpringBoot 2.0 以上的版本,所以像你之前一样的方法来配置上传大小的限制是不可取的。那该如何配置呢?

The field file exceeds its maximum permitted size of 1048576 bytes

还是和以前一样,我们去找 autoconfigure 包。因为 SpringBoot 的核心就是自动配置,自动配置的所有东西都在 autoconfigure 中。然后我们找到这个类 MultipartProperties.java。它里面有下面的这几段代码:

@ConfigurationProperties(
    prefix = "spring.servlet.multipart",
    ignoreUnknownFields = false
)
public class MultipartProperties {
    private boolean enabled = true;
    private String location;
    private String maxFileSize = "1MB";
    private String maxRequestSize = "10MB";
    private String fileSizeThreshold = "0";
    private boolean resolveLazily = false;

默认的最大文件上传是 1MB。如果超过 1M 呢,就会报:“The field file exceeds its maximum permitted size of 1048576 bytes.“导致文件无法上传。

所以呢,我们在 application.properties 文件中配置一下内容即可。

spring.servlet.multipart.enabled=true
spring.servlet.multipart.max-file-size=5MB
spring.servlet.multipart.max-request-size=5MB

现在你会发现,配置属性的前缀变成了 spring.servlet.multipart.xx 。所以你如果还在按照 SpringBoot 1.x 的方式来配置,肯定不会生效的。

在 Spring Boot 1.3.x或者之前,配置用法如下:

multipart.maxFileSize=100Mb
multipart.maxRequestSize=1000Mb

Spring Boot 1.4.x 以后,变成了下面的配置:

spring.http.multipart.maxFileSize=100Mb
spring.http.multipart.maxRequestSize=1000Mb

在 Spring Boot 2.0 之后呢?它又变了。变成了上面我最开始的配置。

到这里,我们发现 Spring Boot 非常的善变,那是不是以后 SpringBoot 没升级一次,都会变呢?

答案是,不管它变与不变,只要我们掌握诀窍,再变我们都不怕。注意:一切自动配置都在 autoconfigure 包中,只需要找对应的 XXXProperties 类即可。

业余草公众号

最后,欢迎关注我的个人微信公众号:业余草(yyucao)!可加作者微信号:xttblog2。备注:“1”,添加博主微信拉你进微信群。备注错误不会同意好友申请。再次感谢您的关注!后续有精彩内容会第一时间发给您!原创文章投稿请发送至532009913@qq.com邮箱。商务合作也可添加作者微信进行联系!

本文原文出处:业余草: » Spring Boot WebFlux 修改最大上传文件限制