【问题标题】:Java Spring Boot, MaxUploadSizeException/SizeLimitExceededException issue when uploading file larger then 10MBJava Spring Boot,上传大于 10MB 的文件时出现 MaxUploadSizeException/SizeLimitExceededException 问题
【发布时间】:2020-01-08 12:00:51
【问题描述】:

嵌入式 Tomcat 不会上传大于 10MB 的文件

我编写了一个端点来允许用户通过 POST 将文件上传到服务器。端点类型的工作。它将文件上传到服务器。但是,它只上传小于 10MB 的文件。 10MB 或更大的文件会遇到嵌入式 Tomcat 引发的 MaxUploadSizeExceedException 问题(如下)。

我没有在项目的任何地方设置任何文件上传限制。我从某处读到,默认情况下,嵌入式 Tomcat 对上传文件大小没有任何限制。

我尝试使用以下变量(一次一个)编辑 application.properties 文件中的文件上传大小:

spring.servlet.multipart.maxFileSize=5000MB
# spring.http.multipart.max-file=5000MB
# multipart.maxFileSize=50mb        # max file size
# multipart.maxRequestSize=50mb     # max reques

在 application.properties 文件中编辑上述变量并没有改变嵌入式 Tomcat 对 10MB 文件上传大小的限制。然后我创建了一个如下的 Bean 来指定上传文件的大小,但运气不佳:

@Configuration
public class UploadFileSize {
    private long maxFileSize = -1;  // -1 = unlimited size

    public MultipartResolver multipartResolver() {   
        CommonsMultipartResolver multipartResolver = new 
 CommonsMultipartResolver();    
        multipartResolver.setMaxUploadSize(maxFileSize);    
        enter code here

        return multipartResolver;
    }
}

我希望代码能够上传几 GB 大小的文件。

【问题讨论】:

  • 这不是 bean,因为它缺少 @Bean 注释。实际上要设置的属性取决于您使用的 Spring Boot 版本,因为版本之间的情况发生了变化。请指定您使用的 Spring Boot 版本。

标签: java spring spring-boot tomcat file-upload


【解决方案1】:

我使用以下配置允许无限上传大小

spring.servlet.multipart.max-file-size=-1
spring.servlet.multipart.max-request-size=-1
server.tomcat.max-http-post-size=-1 (!! Maximum size of the HTTP post content)

【讨论】:

    【解决方案2】:

    正如 M.Deinum 所建议的,您需要检查您的版本并相应地设置属性。

    将属性设置为-1 将使其文件大小无限。我们可能会根据需要进行更改。

    application-properties

    Spring Boot 1.3.x 及更早版本

    multipart.max-file-size
    multipart.max-request-size
    

    Spring Boot 1.3.x 之后:

    spring.http.multipart.max-file-size=-1
    spring.http.multipart.max-request-size=-1
    

    Spring Boot 2.0 之后:

    spring.servlet.multipart.max-file-size=-1
    spring.servlet.multipart.max-request-size=-1
    

    【讨论】:

      【解决方案3】:

      请使用下面的属性,它对我有用。

      spring.servlet.multipart.max-file-size=1GB
      spring.servlet.multipart.max-request-size=1GB
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-04-01
        • 1970-01-01
        • 2010-10-06
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多