一般是在微服务 zuul 网关这里报错导致文件上传失败,所以先检查你的 zuul

文件上传到服务器出现 org.springframework.web.multipart.MultipartException: Could not parse multipart servlet request; nested exception is java.io.IOException: The temporary upload location [/tmp/tomcat.217069926745995889.18000/work/Tomcat/localhost/ROOT] is not valid at org.springframework.web.multipart.support.StandardMultipartHttpServletRequest.parseRequest(StandardMultipartHttpServletRequest.java:112)

是因为长时间不使用系统,系统会自动删掉
/tmp/tomcat.217069926745995889.18000/work/Tomcat/localhost/ROOT
这个临时文件夹(用于临时存放上传的文件)

解决方案:

  1. (临时)手动创建这个文件夹即可解决该问题

  2. (永久)在 yml 设置文件临时存储路径
    spring.http.multipart.location = /tmp/uploadfiles (spring 1.x)
    或者
    spring.servlet.multipart.location = /tmp/uploadfiles (spring 2.x)

方案二,在 zuul 服务、文件上传服务(如果有)都要加这个配置。