Failed to parse multipart servlet request; nested exception is java.io.IOException: The temporary upload location [/tmp/tomcat.7396972324062042541.8083/work/Tomcat/localhost/ROOT] is not valid
服务器里的文件被清理掉了,重启服务即可,亲测可用
原因:
在Linux系统中, SpringBoot应用使用java -jar命令启动服务时, 会在操作系统的/tmp目录下生成一个tomcat*的文件目录, 如果form指定了enctype=“multipart/form-data”, 提交请求时要转换成临时文件保存在这个文件夹下面. 由于临时/tmp目录下的文件, 在长时间(10天)没有使用的情况下, 就会被系统自动删除掉.
解决方法:
1.直接重启项目, 会重新生成一个临时/tmp文件夹
2.在配置文件中配置tomcat的临时目录
server.tomcat.basedir=/home/temp
3.写一个配置类, 通过@Bean的方式配置目录
/**
* 文件上传临时路径
*/
@Bean
MultipartConfigElement multipartConfigElement() {
MultipartConfigFactory factory = new MultipartConfigFactory();
factory.setLocation("/home/temp");
return factory.createMultipartConfig();
}
4.把enctype=“multipart/form-data” 改成为 enctype=“application/x-www-form-urlencoded”, 例如