Springboot項目關於上傳文件的大小限制
1, 第一種處理方式 application.properties中添加
maxFileSize 是單個文件大小
maxRequestSize是設置總上傳的數據大小
這就可以了。
根據自己需求定義吧,Mb和Kb都可以,大小寫也都隨意,Long字節應該可以的
另外這是MultipartConfigFactory類中的轉換,可以瞅一眼
spring.http.multipart.maxFileSize=10Mb
spring.http.multipart.maxRequestSize=10Mb
private long parseSize(String size) {
Assert.hasLength(size, "Size must not be empty");
size = size.toUpperCase();
return size.endsWith("KB")?Long.valueOf(size.substring(0, size.length() - 2)).longValue() * 1024L:(size.endsWith("MB")?Long.valueOf(size.substring(0, size.length() - 2)).longValue() * 1024L * 1024L:Long.valueOf(size).longValue());
}
2,第二種增加Bean配置,注意當前類上需要加註解@Configuration
/**
* 文件上傳配置
* @return
*/
@Bean
public MultipartConfigElement multipartConfigElement() {
MultipartConfigFactory factory = new MultipartConfigFactory();
//文件最大
factory.setMaxFileSize("10240KB"); //KB,MB
/// 設置總上傳數據總大小
factory.setMaxRequestSize("102400KB");
return factory.createMultipartConfig();
}
一般配置就放在啓動類中就好了
@Configuration
@SpringBootApplication
public class Application {
public static void main(String[] args) throws Exception {
SpringApplication.run(Application.class, args);
}
/**
* 文件上傳配置
* @return
*/
@Bean
public MultipartConfigElement multipartConfigElement() {
MultipartConfigFactory factory = new MultipartConfigFactory();
//文件最大
factory.setMaxFileSize("10240KB"); //KB,MB
/// 設置總上傳數據總大小
factory.setMaxRequestSize("102400KB");
return factory.createMultipartConfig();
}
}
3,第三種,Nginx上傳限制
在nginx使用過程中,上傳文件的過程中,通常需要設置nginx報文大小限制。避免出現413 Request Entity Too Large。
先找到linux下的/usr/local/nginx/conf
,nginx.conf
加上 client_max_body_size 10m;
這句話
http {
include /etc/nginx/mime.types;
default_type application/octet-stream;
charset utf-8;
access_log /var/log/nginx/access.log main;
client_max_body_size 10m; #增加這個參數就可以指定最大上傳文件大小爲10m了;
sendfile on;
#tcp_nopush on;
keepalive_timeout 65;
然後保存,再命令行輸入cd /usr/local/nginx/sbin
,進入這個nginx/sbin
目錄,輸入 ./nginx -s reload
重啓nginx即可