spring-boot項目,運行一段時間后,上傳圖片報錯,如下:
org.springframework.web.multipart.MultipartException: Could not parse multipart servlet request; nested exception is java.io.IOException: The temporary upload location [/tmp/tomcat.6309796379240031738.18000/work/Tomcat/localhost/opxx] is not valid] with root cause
原因是Linux會自動清理一段時間不適用的臨時文件(具體清理規則可以參考https://www.cnblogs.com/MonkeyAC/articles/3631401.html),導致找不到臨時目錄而報錯。
解決方法:
-
臨時解決方法是直接創建臨時文件目錄
-
指定上傳文件臨時目錄
@Configuration
public class MultipartConfig {
/**
* 文件上傳臨時路徑
*/
@Bean
MultipartConfigElement multipartConfigElement() {
MultipartConfigFactory factory = new MultipartConfigFactory();
factory.setLocation("/data/dubbo/cache");
return factory.createMultipartConfig();
}
}