SpringBoot:修改上傳檔案大小的限制
阿新 • • 發佈:2018-12-18
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。