SpringBoot上传文件大小受限问题的解决办法

1、控制台异常

启动项目正常,访问文件上传post请求突然报出了一个异常。

org.springframework.web.multipart.MaxUploadSizeExceededException: Maximum upload size exceeded; nested exception is java.lang.IllegalStateException: org.apache.tomcat.util.http.fileupload.FileUploadBase$FileSizeLimitExceededException: The field file exceeds its maximum permitted size of 1048576 bytes.
	at org.springframework.web.multipart.support.StandardMultipartHttpServletRequest.handleParseFailure(StandardMultipartHttpServletRequest.java:121)
	at org.springframework.web.multipart.support.StandardMultipartHttpServletRequest.parseRequest(StandardMultipartHttpServletRequest.java:114)

从上述异常可以看出,是因为上传的file文件超过了spring默认配置的最大值1048576 bytes,上传文件我们通常情况下是使用MultipartFile接口类接收前端上传的文件,可见对于MultipartFile文件的默认限制也是1048576 bytes,即1M。

但是很多情况下我们上传的文档在2M以上,不能满足使用的需求,所以我们就要修改默认配置参数大小。

2、上传文件默认参数

SpringBoot不同的版本,对应的设置参数不同:

Spring Boot 1.3.x and earlier

  • multipart.maxFileSize
  • multipart.maxRequestSize

Spring Boot 1.4.x and 1.5.x

  • spring.http.multipart.maxFileSize
  • spring.http.multipart.maxRequestSize

Spring Boot 2.x

  • spring.servlet.multipart.maxFileSize
  • spring.servlet.multipart.maxRequestSize

3、解决方法

方法:在配置文件.yml或者.properties中直接修改参数

示例:我用的是SpringBoot 2.3.0的版本,然后直接在配置文件中设置参数大小:

#做限制的参数配置
spring:
  servlet:
    multipart:
      enabled: true #默认支持文件上传
      max-file-size: 50MB # 最大支持文件大小
      max-request-size: 60MB # 最大支持请求大小
 
#不做限制的参数配置
spring:
  servlet:
    multipart:
      enabled: true #默认支持文件上传
      max-file-size: -1 #不做限制
      max-request-size: -1 #不做限制

设置完重启项目即可成功上传文件。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值