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
的原因,配置这个bean后会产生冲突,以至于在后台获取不到上传的文件
解决方法:
第一种:
在application.properties中添加:
spring.http.multipart.maxFileSize=10Mb ?spring.http.multipart.maxRequestSize=10Mb
老版本的话添加:
multipart.maxFileSize=128KBmultipart.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等也会对文件上传做一定的限制,具体问题具体分析。
上传大小配置
原文地址:http://www.cnblogs.com/1234cjq/p/7650223.html