1. 程式人生 > >SpringBoot:修改上傳檔案大小的限制

SpringBoot:修改上傳檔案大小的限制

SpringBoot:修改上傳檔案大小的限制

Spring Boot預設檔案上傳大小為2M,當多文件,大文件上傳時總是出現檔案大小超出限度的問題。解決方法如下:

方法一、在application.properties新增配置項

# Single file max size  即單個檔案大小
multipart.maxFileSize=50Mb
# All files max size      即總上傳的資料大小
multipart.maxRequestSize=50Mb

方法二、在啟動類中新增配置Bean

import javax.servlet.MultipartConfigElement;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.web.servlet.MultipartConfigFactory;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;


@Configuration
@SpringBootApplication
public class App 
{
    public static void main( String[] args ) {
        SpringApplication.run(App.class, args);
    }
    
    /**  
     * 檔案上傳配置  
     * @return  
     */  
    @Bean  
    public MultipartConfigElement multipartConfigElement() {  
        MultipartConfigFactory factory = new MultipartConfigFactory();  
        //單個檔案最大  
        factory.setMaxFileSize("20480KB");   
        /// 設定總上傳資料總大小  
        factory.setMaxRequestSize("204800KB");  
        
        return factory.createMultipartConfig();  
    }  
}

在上述兩種方法中,設定大小時,Long,Kb,MB均可!MultipartConfigFactory類中的轉換規則如下:

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

注意:上面的設定僅針對後臺,在具體的專案中可能還需要在前端中進行相應的設定,比如:Nginx。