SpringBoot设置上传文件大小
2018-04-14 21:12:18
1504次阅读
0个评论
<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=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等也会对文件上传做一定的限制
00
相关话题
- 文件流式上传
- springboot读取配置文件
- SpringMVC流式上传文件
- SpringMVC使用StandardServletMultipartResolver上传文件
- Ajax跨域上传文件
- Nginx 设置 X-Accel-Redirect 控制文件下载
- Servlet3.0原生API文件上传
- SpringMVC 配置servlet3.0 文件上传
- SpringBoot自定义配置文件及读取配置文件
- javascript判断上传的文件是否为图片
- 使用jquery-form.js异步上传文件
- springBoot动态切换application.properties配置文件
- Nginx 上传文件出现413 Request Entity Too Large错误
- CentOS设置时间和时区
- jackson Spring boot 枚举类型不区分大小写映射