springboot 文件上傳 java.io.IOException: The temporary upload location [/tmp/xx] is not valid

轉自:http://meia.fun/article/1541578061808linux

首先分析下出現問題的緣由:linux 下的 /tmp 目錄,是用來存儲由各類程序建立的臨時文件的地方。一些配置,致使系統每次 從新啓動時,都會清空這個目錄。
springboot 項目啓動時默認會在 /tmp 目錄下建立臨時上傳目錄,因此若是 /tmp 目錄不清空就不會拋出這個異常,而 /tmp 目錄默認清空的條件是系統重啓,因此問題的緣由應該不是系統重啓,由於系統重啓 項目也將重啓,也就從新建立了臨時上傳目錄。
有些服務器會裝了 tmpwatch 命令,能夠執行type tmpwatch命令檢查是否安裝,安裝此命令後會啓動一個 cron 定時任務,定時清空 /tmp 目錄,可在/etc/cron.daily/tmpwatch目錄下查看任務腳本,因此若是裝了 tmpwatch,極可能就是由於 tmpwatch 在某個時間清空了 /tmp 致使的上傳失敗spring

推薦的解決方法:
application.properties 配置文件中添加spring.http.multipart.location=手動指定一個臨時目錄屬性,注意:目錄須要手動建立springboot

相關文章
相關標籤/搜索