最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

解決springboot文件上傳提示臨時文件夾不存在問題

 更新時間:2024年05月07日 17:16:52   作者:Mr-Wanter  
這篇文章主要介紹了解決springboot文件上傳提示臨時文件夾不存在問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教

項(xiàng)目場景

附件上傳報錯:

java.io.IOException: The temporary upload location 
[C:\Users\Administrator\AppData\Local\Temp\tomcat.1668302398522753093.8383\work\Tomcat\loca
lhost\ROOT] is not valid

問題描述

客戶現(xiàn)場服務(wù)器長時間無人操作,更新系統(tǒng)后測試發(fā)現(xiàn)附件無法上傳成功。

原因分析

springBoot上傳的文件,會先緩存到本地磁盤;

為什么要緩存文件?

因?yàn)榱魅∫淮蜗M(fèi)之后,后面無法再從流中獲取數(shù)據(jù),所以緩存方便后續(xù)復(fù)用;

而緩存的路徑就是上面的路徑:/tmp/tomcat.1668302398522753093.8383

內(nèi)置的tomcat需要創(chuàng)建臨時目錄來存放上傳的文件,當(dāng)POST請求的content-type是multipart/form-data的時候就會訪問這個目錄,而這個目錄在Linux系統(tǒng)中默認(rèn)建在/tmp目錄下,10天期間,如果沒有上傳文件的需求,那這個路徑就會被linux清除,引發(fā)異常。

解決方案

  • 方法一:既然目錄被刪除了,重啟一下服務(wù),讓系統(tǒng)重新生成該目錄,臨時解決(但是以后目錄還可能被刪除)
  • 方法二:既然是Linux刪除的臨時路徑,可以配置一下不刪除tmp目錄下的tomcat
vim /usr/lib/tmpfiles.d/tmp.conf
# 添加下面一行
x /tmp/tomcat.*
  • 方法三:啟動springBoot程序,添加使用指定臨時目錄的啟動參數(shù)
-java.tmp.dir=/usr/tomcat/tmpfile
  • 方法四:在配置文件中,自定義一個目錄,不用臨時目錄緩存上傳的文件:
server.tomcat.basedir=/data/tmpfile 
或 
spring.http.multipart.location=/data/tmpfile
  • 方法五:在對應(yīng)服務(wù)器上創(chuàng)建該目錄
  • 方法六:注入bean,手動配置臨時目錄,建議有項(xiàng)目組統(tǒng)一配置,便于管理和錯誤定位。
@Bean
  MultipartConfigElement multipartConfigElement() {
    MultipartConfigFactory factory = new MultipartConfigFactory();
    factory.setLocation("/data/tmpfile");
    return factory.createMultipartConfig();
  }

擴(kuò)展

如果微服務(wù)應(yīng)用了網(wǎng)關(guān),那么請求會首先經(jīng)過網(wǎng)關(guān),在網(wǎng)關(guān)的服務(wù)器上找這個地址

那么上面的解決方法都需要在網(wǎng)關(guān)的服務(wù)或服務(wù)器上實(shí)施

總結(jié)

以上為個人經(jīng)驗(yàn),希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Java中的BlockingQueue接口源碼解析

    Java中的BlockingQueue接口源碼解析

    這篇文章主要介紹了Java中的BlockingQueue接口源碼解析,BlockingQueue接口表示阻塞隊列,是Java并發(fā)包中阻塞隊列的接口定義規(guī)范,阻塞隊列意味著對于該隊列的操作是線程安全的,當(dāng)多個線程存放元素進(jìn)入隊列或者從隊列中取出元素都是線程安全的,需要的朋友可以參考下
    2023-11-11
  • mybatis嵌套循環(huán)map方式(高級用法)

    mybatis嵌套循環(huán)map方式(高級用法)

    這篇文章主要介紹了mybatis嵌套循環(huán)map方式(高級用法),具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-01-01
  • Java創(chuàng)建線程的兩種方式

    Java創(chuàng)建線程的兩種方式

    這篇文章主要介紹了Java創(chuàng)建線程的兩種方式,針對Java創(chuàng)建線程的兩種方式進(jìn)行比較,感興趣的小伙伴們可以參考一下
    2016-10-10
  • Core Java 簡單談?wù)凥ashSet(推薦)

    Core Java 簡單談?wù)凥ashSet(推薦)

    下面小編就為大家?guī)硪黄狢ore Java 簡單談?wù)凥ashSet(推薦)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-09-09
  • IDEA連接MySQL數(shù)據(jù)庫的4種方法圖文教程

    IDEA連接MySQL數(shù)據(jù)庫的4種方法圖文教程

    IDEA是一種流行的Java開發(fā)工具,可以方便地連接MySQL,這篇文章主要給大家介紹了關(guān)于IDEA連接MySQL數(shù)據(jù)庫的4種方法,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2023-12-12
  • Java 線程池_動力節(jié)點(diǎn)Java學(xué)院整理

    Java 線程池_動力節(jié)點(diǎn)Java學(xué)院整理

    系統(tǒng)啟動一個新線程的成本是比較高的,因?yàn)樗婕暗脚c操作系統(tǒng)的交互。在這種情況下,使用線程池可以很好的提供性能,尤其是當(dāng)程序中需要創(chuàng)建大量生存期很短暫的線程時,更應(yīng)該考慮使用線程池
    2017-05-05
  • 解決Hibernate4執(zhí)行save()或update()無效問題的方法

    解決Hibernate4執(zhí)行save()或update()無效問題的方法

    這篇文章主要為大家詳細(xì)介紹了解決Hibernate4執(zhí)行save()或update()無效問題的方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2016-06-06
  • Maven添加Tomcat插件實(shí)現(xiàn)熱部署代碼實(shí)例

    Maven添加Tomcat插件實(shí)現(xiàn)熱部署代碼實(shí)例

    這篇文章主要介紹了Maven添加Tomcat插件實(shí)現(xiàn)熱部署代碼實(shí)例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-04-04
  • Springboot2 session設(shè)置超時時間無效的解決

    Springboot2 session設(shè)置超時時間無效的解決

    這篇文章主要介紹了Springboot2 session設(shè)置超時時間無效的解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-07-07
  • 詳解java中BigDecimal精度問題

    詳解java中BigDecimal精度問題

    這篇文章主要介紹了java BigDecimal精度問題,對精確計算感興趣的同學(xué),可以參考下
    2021-05-05

最新評論

收藏| 玉门市| 木兰县| 确山县| 敦化市| 元朗区| 岳阳县| 彭山县| 库尔勒市| 齐河县| 修文县| 岚皋县| 高阳县| 安阳市| 黄平县| 黔西| 屯留县| 元江| 萍乡市| 中卫市| 鄂托克旗| 临江市| 台北县| 松滋市| 黔西县| 平昌县| 蓬溪县| 郯城县| 哈密市| 南昌县| 兖州市| 河北省| 台前县| 东源县| 遵化市| 井陉县| 育儿| 泉州市| 盱眙县| 临清市| 平遥县|