上传文件出现413 Request Entity Too Large问题

  SpringBoot项目中需要上传文件,突然出现当文件大于1MB时,接口完全无法访问的情况,打开Fiddler,接口直接报红,说明根本就没有进入到接口。在这里插入图片描述
  那么出现这种问题的原因是什么了?多方查阅资料和结合实际情况,才发现是公司换了服务器,使用了Nginx,运维人员又没有做相应的配置,这样Nginx默认最大能够上传1MB文件,大于1MB的文件自然无法上传。

解决方案如下:
  打开nginx.conf(没权限找运维人员)在http{ }中设置:client_max_body_size 50m,即:

client_max_body_size 50M

  重启Nginx即可。当做完这些依然无效时,请检查网关(zuul)是否对文件上传也做了限制。

##打开自定义以配置
spring.http.multipart.enabled=true
##最大单文件限制
spring.http.multipart.max-file-size=50MB
##总上传的数据大小
spring.http.multipart.max-request-size=50MB

  重启网关(不重启没效果),依然不起作用,继续检查Spring或者SpringBoot的配置, 如果出现

org.apache.tomcat.util.http.fileupload.FileUploadBase$FileSizeLimitExceededException: The field pic exceeds its maximum permitted size of 1048576 bytes.

org.apache.tomcat.util.http.fileupload.FileUploadBase$FileSizeLimitExceededException: The field pic exceeds its maximum permitted size of 1048576 bytes.

  因为springboot内置tomact的的文件传输默认为1MB,大于1MB的文件是无法上传的,加入配置(我的SpringBoot版本为1.5.6)

#配置开启,打开自定义
spring.http.multipart.enabled =true  
##可以不要
spring.http.multipart.file-size-threshold =0
#最大单文件限制小
spring.http.multipart.max-file-size = 50MB
#总数据的大小
spring.http.multipart.max-request-size=50MB

  Springboot 2.0之后的版本,需要改变:

#单文件限制大小
spring.servlet.multipart.max-file-size = 50MB
#总文件限制的大小
spring.servlet.multipart.max-request-size=50MB

总结

文件无法上传大概就只有以下四个方面的原因

  1. 服务器对上传文件带下做了限制(Nginx,Apache,IIS等服务器,文中仅对Nginx配置做了说明)
  2. 网关对上传文件大小做了限制,此时添加配置即可。
  3. SpringBoot/Spring对上传文件大小做了限制,添加配置即可。
  4. 文件确实过大,前后端链接超时,自动断开链接(可自己设置,不做详述)
  • 4
    点赞
  • 31
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值