有一次由于项目升级,我修改了原来项目接收文件的方法,原来的项目是使用原生的servlet来接收文件

后来,我修改为使用springboot的方式来接收文件,上传小文件的时候没发现有问题,后来上传大文件就总是报错

通过看错误代码可以知道,原来springboot对上传的文件大小有限制的,上传的文件大小超过了上限所以报错

后面问题被解决了,为了能够避免再次发生这样的错误,因此,将这次经历记录下来

针对这个问题,有两个解决方法,如下

在启动类添加如下代码

注意是启动类。main那里

@Bean
public MultipartConfigElement multipartConfigElement() {
  MultipartConfigFactory factory = new MultipartConfigFactory();
  //单个文件最大限制
  factory.setMaxFileSize("10240KB"); //KB,MB
  // 设置总上传数据总大小
  factory.setMaxRequestSize("102400KB");
  return factory.createMultipartConfig();
}

根据spring boot 版本不同在application.properties文件添加不同的配置

Spring Boot 1.3 或之前的版本,配置:

    multipart.maxFileSize = 100Mb

    multipart.maxRequestSize=150Mb

Spring Boot 1.4 版本后配置更改为:

    spring.http.multipart.maxFileSize = 100Mb

    spring.http.multipart.maxRequestSize = 150Mb

Spring Boot 2.0 之后的版本配置修改为: 单位Mb改为MB了

    spring.servlet.multipart.max-file-size = 100MB

    spring.servlet.multipart.max-request-size = 150MB

multipart.maxFileSize=10Mb是设置单个文件的大小,

multipart.maxRequestSize=100Mb是设置单次请求的文件的总大小

如果是想要不限制文件上传的大小,那么就把两个值都设置为-1

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐