繁体   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