[英]Spring multipart file upload with gridfs size limit exception
使用 Jhipster 与 Spring+Mongo 和 Gridfs 处理保存在 db 中的文件。 当我尝试上传大于 1Mb 的文件时,出现 500 错误:
java.io.IOException: UT000054: The maximum size 1048576 for an individual file in a multipart request was exceeded
试图在 application-dev.yml 中设置它但没有成功:
spring:
http:
multipart:
max-file-size: 10MB
max-request-size: 10MB
这个限制怎么改?
试试这个,
spring:
servlet:
multipart:
max-file-size: 10MB
max-request-size: 10MB
如果存在,将此内容添加到 WebConfigurer
@Bean
public MultipartConfigElement multipartConfigElement() {
MultipartConfigFactory factory = new MultipartConfigFactory();
factory.setMaxFileSize("100MB");
factory.setMaxRequestSize("100MB");
return factory.createMultipartConfig();
}
由于 JHipster 使用 undertow,解决此问题的一种方法是在多部分解析器 bean 中设置上传大小,如下所示:
@Configuration
public class UndertowConfiguration {
@Value("${spring.http.multipart.max-file-size:10}")
private long maxFileSize;
@Bean(name = "multipartResolver")
public MultipartResolver multipartResolver() {
CommonsMultipartResolver multipartResolver = new CommonsMultipartResolver();
multipartResolver.setDefaultEncoding("utf-8");
multipartResolver.setResolveLazily(true);
multipartResolver.setMaxUploadSize(1024*1024*maxFileSize);
multipartResolver.setMaxUploadSizePerFile(1024*1024*maxFileSize);
return multipartResolver;
}
}
您可以在application.properties
文件中配置这两个属性,而不是在application-dev.yml
中配置它:
spring.http.multipart.max-file-size=10MB
spring.http.multipart.max-request-size=10MB
有关其他信息,您可以查看Spring Uploading 文件指南。
附带说明一下,如果您稍后决定迁移到spring-boot 2.0 ,这些属性已从spring.http.multipart
更改为spring.servlet.multipart
。
对于 spring boot2.x:
spring:
servlet:
multipart:
max-file-size: 10MB
max-request-size: 10MB
和旧版本
spring:
http:
multipart:
max-file-size: 10MB
max-request-size: 10MB
对于无限上传文件大小,设置 max-file-size: -1 将使其成为无限文件大小。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.