上傳大小配置
阿新 • • 發佈:2017-10-11
數據 -type substr tco exc 啟動 pro cat -c 的原因,配置這個bean後會產生沖突,以至於在後臺獲取不到上傳的文件
SpringBoot文件上傳大小設置問題
<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
<property name="maxUploadSize" value="104857600"/>
<property name="maxInMemorySize" value="4096"/>
</bean>
這是以前上傳文件時一種比較常見的設置上傳文件大小的方法,但由於spring-boot自帶org.springframework.web.multipart.MultipartFile
解決方法:
第一種:
在application.properties中添加:
spring.http.multipart.maxFileSize=10Mb
spring.http.multipart.maxRequestSize=10Mb
老版本的話添加:
multipart.maxFileSize=128KB
multipart.maxRequestSize=128KB
其中:
maxFileSize 是單個文件大小
maxRequestSize是設置總上傳的數據大小
原理-》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());
}
第二種:
在啟動類中配置@Bean,註意當前類上需要加註解@Configuration,如下:
@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();
}
}
此外:Tomcat,Nginx等也會對文件上傳做一定的限制,具體問題具體分析。
上傳大小配置