轉自:http://meia.fun/article/1541578061808
首先分析下出現問題的原因:linux 下的 /tmp 目錄,是用來存儲由各種程序創建的臨時文件的地方。一些配置,導致系統每次 重新啟動時,都會清空這個目錄。
springboot 項目啟動時默認會在 /tmp 目錄下創建臨時上傳目錄,所以如果 /tmp 目錄不清空就不會拋出這個異常,而 /tmp 目錄默認清空的條件是系統重啟,所以問題的原因應該不是系統重啟,因為系統重啟 項目也將重啟,也就重新創建了臨時上傳目錄。
有些服務器會裝了 tmpwatch 命令,可以執行type tmpwatch命令檢查是否安裝,安裝此命令后會啟動一個 cron 定時任務,定時清空 /tmp 目錄,可在/etc/cron.daily/tmpwatch目錄下查看任務腳本,所以如果裝了 tmpwatch,很可能就是因為 tmpwatch 在某個時間清空了 /tmp 導致的上傳失敗
推薦的解決方法:
application.properties 配置文件中添加spring.http.multipart.location=手動指定一個臨時目錄屬性,注意:目錄需要手動創建
