簡體   English   中英

帶有gridfs大小限制異常的Spring分段文件上傳

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM