最近查看之前的项目,发现上传项目报错,经过查找问题,原来是Linux系统中Tomcat的文件上传机制引起,Tomcat在处理文件上传时,会将客户端上传的文件写入临时目录,这个临时目录默认在/tmp路径下,如:“/tmp/tomcat.6574404581312272268.18333/work/Tomcat/localhost/ROOT”。
而操作系统对于/tmp目录会不定时进行清理,如果正好因为操作系统的清理导致对应的临时目录被删除,客户端再上传文件时就会报错:“The temporary upload location is not valid”。
解决方法:
1.重启项目,可以解决(治标不治本,但也能暂时解决问题)
2.通过Spring Boot的配置参数“spring.servlet.multipart.location”明确指定上传文件的临时目录,确保该路径已经存在,而且该目录不会被操作系统清除。(推荐)
spring.servlet.multipart.location=/data/tmp
更多详细分析,可参考转载博客https://www.cnblogs.com/nuccch/p/11546494.html