现象:测试环境测试上传功能,突然发现上传失败,打开浏览器报跨域错误;
解决:查看各种跨域问题,以为是nginx配置问题,摆弄了几小时,还是不行,最后无意间看了下日志,结果后端有报错:
Caused by: java.io.IOException: The temporary upload location [/tmp/tomcat.6149033833776155033.8012/
原因:上传文件找不到临时文件夹,因为SpringBoot在启动时会创建一个tmp文件夹,如果在10天内没有对该文件夹进行操作,就会删除掉,导致上传找不到文件夹报错。
解决:1、重启
2、修改tomcat启动配置,添加-Djava.io.tmpdir=
java -Djava.io.tmpdir=./temp -jar server-0.0.1-SNAPSHOT.jar
3、
指定上传文件临时的路径(从根本解决)
//在启动类里面添加MultipartConfigElement 配置类
@Bean
public MultipartConfigElement multipartConfigElement() {
MultipartConfigFactory factory = new MultipartConfigFactory();
//指定临时文件路径
factory.setLocation("/data/tmp");
return factory.createMultipartConfig();
}