背景
今天测试部门同事反馈上传图片的时候出现了以下错误:
org.springframework.web.multipart.MultipartException: Failed to parse multipart servlet request; nested exception is java.io.IOException: org.apache.tomcat.util.http.fileupload.impl.IOFileUploadException: Processing of multipart/form-data request failed. java.io.EOFException
另一个问题是上传图片,在加载图片时候显示下面的错误;
分析问题及解决方案
第一个问题
在对于http的post请求来说,他需要一个临时文件来存储对post数据的存储。
因为这个目录是挂在了/temp目录下面的临时文件,而且对于一些操作系统,比如Centos会经常删除这个临时目录的,所以就会导致这目录不存在的情况。
解决方案
在我们配置文件中添加一项配置spring.servlet.multipart.location用作临时存储目录
spring: #文件上传大小配置 单个文件大小 总的文件大小 servlet: multipart: max-file-size: 500MB max-request-size: 600MB location: /tools/uploadfile/tmp
然后重启我们的服务即可,如果仍未解决,那就在启动项目的参数上添加
-java.tmp.dir=/path/to/application/temp/
第二个问题
这个问题,从错误来看是因为跨域导致的,我们只需要解决跨域问题就可以了!
解决方案
在nginx中配置他的跨域配置即可,前面我们也讲过关于nginx配置静态资源跨域的问题!
今天关于这两个问题就讲到这,欢迎大家点击下方的卡片,关注《coder练习生》