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();
}
}