文件上传报错总结

目录

1.文件上传时后端报错:Connection terminated as request was larger than 10485760

2.文件上传时nginx报错:413 Request Entity Too Large

3.总结


1.文件上传时后端报错:Connection terminated as request was larger than 10485760

拦截器中报错
org.springframework.web.util.NestedServletException: 
Request processing failed; nested exception is java.lang.IllegalStateException:
io.undertow.server.RequestTooBigException: UT000020: Connection terminated as request was larger than 10485760

原因:上传较大文件时,请求大小超过了默认的请求大小,springboot中默认的请求大小及文件大小如下:

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

解决方法:调高最大请求大小及文件大小。

spring.servlet.multipart.max-file-size=512MB
spring.servlet.multipart.max-request-size=512MB

有时候请求可能在拦截器中被拦截,没有进入到接口中,可以从拦截器中查看错误 

2.文件上传时nginx报错:413 Request Entity Too Large

原因:Nginx默认最大能够上传1MB文件,大于1MB的文件自然无法上传。

解决方法:在http中添加如下配置,对所有server都会生效,添加在某个server下,只会对此server生效。

client_max_body_size 50m;

3.总结

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

服务器对上传文件带下做了限制。(Nginx,Apache,IIS等服务器,文中仅对Nginx配置做了说明)
网关对上传文件大小做了限制,此时添加配置即可。
SpringBoot/Spring对上传文件大小做了限制,添加配置即可。
文件确实过大,前后端链接超时,自动断开链接。(可前端做限制)
 

你可能感兴趣的:(BUG,spring,boot,后端,java)