問題的原因
在Linux 系統中,SpringBoot 應用服務在啟動(java -jar 命令啟動服務)的時候,會在操作系統的/tmp目錄下生成一個tomcat*的文件目錄,上傳的文件先要轉換成臨時文件保存在這個文件夾下面。由於臨時/tmp目錄下的文件,在長時間(10天)沒有使用的情況下,就會被系統機制自動刪除掉。所以如果系統長時間無人問津的話,就可能導致上面這個問題。
解決方案
臨時的,直接重新啟動項目就行,會重新建立臨時文件夾
在配置文件中配置tomcat的臨時目錄:
server.tomcat.basedir=/home/temp
寫個配置類,通過@Bean的方式配置目錄:
/**
* 文件上傳臨時路徑
*/
@Bean
MultipartConfigElement multipartConfigElement() {
MultipartConfigFactory factory = new MultipartConfigFactory();
factory.setLocation("/home/temp");
return factory.createMultipartConfig();
}