SpringBoot 上傳文件時本地路徑無效

SpringBoot 通過網關Zuul進行附件上傳的時候,有時會出現如下錯誤

[Request processing failed; nested exception is org.springframework.web.multipart.MultipartException: Could not parse multipart servlet request; nested exception is java.io .IOException: The temporary upload location [/tmp/tomcat.3814974221022613431.8080/work/Tomcat/localhost/ROOT] is not valid] with root causejava.io .IOException: The temporary upload location [/tmp/tomcat.3814974221022613431.8080/work/Tomcat/localhost/ROOT] is not valid 

 

錯誤產生的原因:

1.spring boot的應用服務在啓動的時候,會生成在操作系統的/tmp目錄下生成一個Tomcat.*的文件目錄,用於"java.io.tmpdir"文件流操作
TomcatEmbeddedServletContainerFactory

 

2.程序對文件的操作時:會生成臨時文件,暫存在臨時文件中;長時間不操作,導致/tmp下面的tomcat臨時文件目錄被刪除,

且刪除的文件不可恢復,上傳文件時獲取不到文件目錄,報錯

解決方式有以下幾點:

1、重啓服務;

2、網關是否引入spring-boot-starter-web依賴,若無,則將其引入;

3、設置spring.servlet.multipart.enabled:true

4、修改上傳文件默認的BaseDir


 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章