SpringBoot上传文件临时失效问题
2021-07-12 01:04
标签:存在 cto load 机制 localhost requests actor element root 线上的系统中不能上传文件了,出现如下错误: 原因: 解决办法: @Bean MultipartConfigFactory factory = new MultipartConfigFactory(); } 手动的将临时文件夹设置为自定义的文件夹,就不会被Linux删除了。 ps:在 SpringBoot上传文件临时失效问题 标签:存在 cto load 机制 localhost requests actor element root 原文地址:https://www.cnblogs.com/zhangzhiqin/p/9550157.htmlorg.springframework.web.multipart.MultipartException: Could not parse multipart servlet request;nested exception is java.io.IOException: The temporary upload location [/tmp/tomcat.1337767218595042057.80/work/Tomcat/localhost/ROOT] is not valid org.springframework.web.multipart.support.StandardMultipartHttpServletRequest.parseRequest(StandardMultipartHttpServletRequest.java:112) org.springframework.web.multipart.support.StandardMultipartHttpServletRequest.
在linux
系统中,springboot
应用服务再启动(java -jar
命令启动服务)的时候,会在操作系统的/tmp
目录下生成一个tomcat*
的文件目录,上传的文件先要转换成临时文件保存在这个文件夹下面。由于临时/tmp
目录下的文件,在长时间(10天)没有使用的情况下,就会被系统机制自动删除掉。所以如果系统长时间无人问津的话,就可能导致上面这个问题。
public MultipartConfigElement multipartConfigElement() {
factory.setLocation("/data/app/temp");
// 文件最大
factory.setMaxFileSize("10240KB"); // KB,MB
// / 设置总上传数据总大小
factory.setMaxRequestSize("102400KB");
return factory.createMultipartConfig();windows系统
中可以生效,系统会自动生成/data/apps/temp
这一路径,但是在Linux系统
中不会生成/data/apps/temp
路径