解決springboot項(xiàng)目上傳文件出現(xiàn)臨時文件目錄為空的問題
最近寫文件上傳到服務(wù)器讀取的代碼,前端使用FormData上傳,服務(wù)端用MultipartFile接收,自己測試了下MultipartFile對象有什么東西,結(jié)果一般屬性都能出來,測試getInputStrea()方法的時候出現(xiàn)了以下錯誤,簡單一看這是什么目錄,從來沒見過?。?/p>

百度一番之后發(fā)現(xiàn)了這是臨時文件存放的路徑,不清楚根據(jù)什么去放在這個目錄的,但是這個目錄本機(jī)的確沒有,linux系統(tǒng)下好像系統(tǒng)會10天清空一次,翻閱了API底下有這個

百度的時候也發(fā)現(xiàn)另外一個坑,spring配置的MaxInMemorySize配置決定會不會存成臨時文件,超過MaxInMemorySize這個大小,則會生成一個臨時文件在你的localhost文件夾下。小于這個值,則是存在內(nèi)存中,不生產(chǎn)臨時文件了,所以這個值設(shè)置小點(diǎn),報錯也是FileNotFoundException,注意一下
有網(wǎng)友建議springboot配置tomcat臨時文件目錄,這個方法沒試,我是直接在配置類中加了一個方法,可以參考下:
@Bean
public MultipartConfigElement multipartConfigElement(){
MultipartConfigFactory multipartConfigFactory = new MultipartConfigFactory();
String location = System.getProperty("user.dir") + "/data/tmp";
File file = new File(location);
if(!file.exists()){
file.mkdirs();
}
multipartConfigFactory.setLocation(location);
return multipartConfigFactory.createMultipartConfig();
}
然后debug了下,發(fā)現(xiàn)getInputStream()中的path就是我設(shè)置的了:

如果設(shè)置了MaxInMemorySize大小,設(shè)置了路徑還是不行,可以把MultipartFile設(shè)置為File做操作
最后說句,代碼不懂得一定要看API,一下子就豁然開朗了
以上這篇解決springboot項(xiàng)目上傳文件出現(xiàn)臨時文件目錄為空的問題就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
Spring Boot利用@Async異步調(diào)用:ThreadPoolTaskScheduler線程池的優(yōu)雅關(guān)閉詳解
這篇文章主要給大家介紹了關(guān)于Spring Boot利用@Async異步調(diào)用:ThreadPoolTaskScheduler線程池的優(yōu)雅關(guān)閉的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考借鑒,下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2018-05-05
以Java代碼的方式總結(jié)幾個典型的內(nèi)存溢出案例
作為程序員,多多少少都會遇到一些內(nèi)存溢出的場景,如果你還沒遇到,說明你工作的年限可能比較短,或者你根本就是個假程序員!哈哈,開個玩笑.今天分享給大家Java內(nèi)存溢出的相關(guān)案例,希望大家在日常工作中,盡量避免寫這些low水平的代碼,需要的朋友可以參考下2021-06-06
23種設(shè)計(jì)模式(19)java責(zé)任鏈模式
這篇文章主要為大家詳細(xì)介紹了23種設(shè)計(jì)模式之java責(zé)任鏈模式,具有一定的參考價值,感興趣的小伙伴們可以參考一下2018-01-01
說說@ModelAttribute在父類和子類中的執(zhí)行順序
這篇文章主要介紹了@ModelAttribute在父類和子類中的執(zhí)行順序,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-06-06
JavaWeb實(shí)現(xiàn)壓縮多個文件并下載實(shí)例詳解
本文通過實(shí)例代碼給大家講解了javaweb實(shí)現(xiàn)壓縮多個文件并下載功能,非常不錯,具有參考借鑒價值,需要的朋友參考下吧2017-07-07
springMVC實(shí)現(xiàn)圖形驗(yàn)證碼(kaptcha)代碼實(shí)例
這篇文章主要介紹了springMVC實(shí)現(xiàn)圖形驗(yàn)證碼(kaptcha)代碼實(shí)例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值2019-09-09
解決MultipartFile.transferTo(dest) 報FileNotFoundExcep的問題
這篇文章主要介紹了解決MultipartFile.transferTo(dest) 報FileNotFoundExcep的問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-07-07

