spring文件上传限制
1. SpringBoot上传文件大小限制的配置
使用SpingBoot框架上传文件时,如果文件大小超过了1MB,会报错:
原因是SpringBoot内置的Tomcat的文件传输默认单个文件最大1M,单次请求文件总数大小为10M。
解决方法:
可以在SpingBoot的application.yml配置文件中进行修改
SpingBoot2.0版本之前:
SpingBoot2.0版本之后:
2. springboot调整上传文件大小限制
Spring Boot文件上传,文件过大导致异常the request was rejected because its size (xxx) exceeds the configured maximum (xxx)
当进行文件操作时,如果文件体积过大,会抛出上述错误。解决方案有两种,一种是通过复写MultipartConfigElement;另一种是修改配置文件application.yml中multipart相关参数。
通过setMaxRequestSize限制限制上传的多个文件的总大小,setMaxFileSize限制单个文件的最大值。
properties配置:
参考:
https://blog.csdn.net/gnail_oug/article/details/80324120
https://ld246.com/article/1592018534503
https://blog.csdn.net/qq_27886773/article/details/102695145
3. spring boot 配置最大上传文件大小 在Linux环境下不生效问题
Spring Boot 默认最大request size 为10MB(1048576 bytes)。
需要设置以下两个参数
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
很多人设置了multipart.maxFileSize但是不起作用,是因为1.4版本以上的配置改了,详见官方文档: spring boot 1.4
如果是前端发布到nginx下的还需要配置config/nginx.config
因为nginx默认最大上传大小为1M,所以要在service-name后面加上 client_max_body_size = 10M;
参考: https://www.cnblogs.com/parasis/p/6422480.html
4. SpringBoot tomcat 上传文件大小受限制
applicaton.properties配置:
spring.servlet.multipart.max-file-size=200MB
spring.servlet.multipart.max-request-size=200MB
或
application.yml配置:
# Spring配置
spring:
# 文件上传
servlet:
multipart:
# 单个文件大小
max-file-size: 20000MB
# 设置总上传的文件大小
max-request-size: 50000MB
并且添加如下配置文件
import javax.servlet.MultipartConfigElement;
import org.springframework.boot.web.servlet.MultipartConfigFactory;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.util.unit.DataSize;
@Configuration
public class UploadConfig {
@Bean
public MultipartConfigElement multipartConfigElement() {
MultipartConfigFactory factory = new MultipartConfigFactory();
//文件最大20000M
factory.setMaxFileSize(DataSize.ofMegabytes(20000));
// factory.setMaxFileSize(DataSize.parse("100MB"));
// 设置总上传数据总大小
factory.setMaxRequestSize(DataSize.parse("50000MB"));
return factory.createMultipartConfig();
}
}