問題描述:測試反饋說系統全部的接口,採用post請求,數據格式用form-data時,全部的接口不能成功調用,但使用application/x-www-form-urlencoded或者application/json則沒有問題。使用Postman測試,響應以下:html
{ "timestamp": 1532932938640, "status": 500, "error": "Internal Server Error", "exception": "org.springframework.web.multipart.MultipartException", "message": "Could not parse multipart servlet request; nested exception is java.io.IOException: The temporary upload location [/tmp/tomcat.8933035133061590431.8060/work/Tomcat/localhost/ROOT] is not valid" }
其實看到這個,問題就已經很明顯了,就是/tmp/tomcat.8933035133061590431.8060/work/Tomcat/localhost/ROOT這個目錄找不到。而後手動建立了這個目錄,就恢復正常了。java
下面看看爲何會出現這個問題web
SpringBoot應用服務在啓動(java -jar
命令啓動服務)的時候,會在操做系統的/tmp目錄下生成一個tomcat*
的文件目錄,上傳的文件先要轉換成臨時文件保存在這個文件夾下面。spring
既然是這樣,那咱們解決的方法就有如下幾種了:json
server.tomcat.basedir: /data/tomcat/temp
問題到這裏已經算是解決了,下面是關於form-data的一篇文章tomcat