[英]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.