關於上傳文件的大小限制

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/confnginx.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即可

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章