1. 程式人生 > >spring Boot上傳檔案報錯。

spring Boot上傳檔案報錯。

spring Boot版本 1.4.5 

報錯原因:

org.springframework.web.multipart.MultipartException: Could not parse multipart servlet request; nested exception is java.io.IOException: The temporary upload location [C:\Users\admin\AppData\Local\Temp\tomcat.3797255209336115746.9008\work\Tomcat\localhost\ROOT\data\uploadTemp] is not valid
上傳檔案大小了584K,明顯沒有觸及到什麼 檔案太大之類的短板。

關鍵問題在於:

The temporary upload location [C:\Users\admin\AppData\Local\Temp\tomcat.3797255209336115746.9008\work\Tomcat\localhost\ROOT\data\uploadTemp] is not valid

字面意思:

本地的臨時儲存位置:C:\Users\admin\AppData\Local\Temp\tomcat.3797255209336115746.9008\work\Tomcat\localhost\ROOT\data\uploadTemp 不可達。

那麼本地明顯沒有這個位置!出現的原因可能是莫名其妙被刪除了。

spring boot找不到這個地址 就丟擲來這個一場了。

看來是Spring boot的臨時儲存位置出問題了。

那麼我重寫一下他的臨時儲存位置:

第一種 方法 jar包啟動時 利用 引數 來設定臨時路徑。   費勁,放棄。

第二種方法 注入bean,自定義修改檔案臨時儲存路徑。有程式碼侵入量,可以考慮。

@Bean
	 MultipartConfigElement multipartConfigElement() {
	    MultipartConfigFactory factory = new MultipartConfigFactory();
	    factory.setLocation("d://temp");
	    return factory.createMultipartConfig();
	}
第三種方法:

application.yml裡

 設定檔案臨時儲存路徑

   spring.http.multipart.local = 

  三種方法。看自己選擇了。