问题描述
在公司的一台Windows操作系统的开发机上,启动spring boot应用,刚启动的时候,图片上传正常。过一会儿,图片上传不成功。查看日志,报以下错误:
到c盘下查看文件发现\localhost\ROOT已经不存在了。
原因
因为spring boot启动时候,内置的tomcat服务器会生成一个tomcat的文件缓存目录。上传图片文件的时候先缓存在tomcat的缓存目录,然后在传到应用配置的文件目录。由于服务器会定时删缓存目录,把springboot生成的缓存目录给删了,上传图片文件的时候,由于找不到这个缓存目录,导致应用报错。
解决方案
将缓存目录迁移至不会被服务器定时删除的地方,在启动脚本上添加参数-Djava.io.tmpdir=自定义目录
。如下: