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

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

上传文件限制这个功能,大部分框架都有。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 类即可。

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

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

原创文章,作者:Maggie-Hunter,如若转载,请注明出处:https://blog.ytso.com/tech/java/251869.html

(0)
上一篇 2022年5月3日 17:04
下一篇 2022年5月3日 17:08

相关推荐

发表回复

登录后才能评论