日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

Spring Boot應用上傳文件時報錯的原因及解決方案

瀏覽:24日期:2023-07-23 17:20:49
問題描述

Spring Boot應用(使用默認的嵌入式Tomcat)在上傳文件時,偶爾會出現上傳失敗的情況,后臺報錯日志信息如下:“The temporary upload location is not valid”。

原因追蹤

這個問題的根本原因是Tomcat的文件上傳機制引起的!Tomcat在處理文件上傳時,會將客戶端上傳的文件寫入臨時目錄,這個臨時目錄默認在/tmp路徑下,如:“/tmp/tomcat.6574404581312272268.18333/work/Tomcat/localhost/ROOT”。而操作系統對于/tmp目錄會不定時進行清理,如果正好因為操作系統的清理導致對應的臨時目錄被刪除,客戶端再上傳文件時就會報錯:“The temporary upload location is not valid”。實際上,追蹤一下源碼會發現,如果不明確設置Tomcat的文件上傳臨時目錄,默認讀取的是Servlet上下文對象的屬性“javax.servlet.context.tempdir”值,如下源碼:

org.apache.catalina.connector.Request

private void parseParts(boolean explicit) { //... MultipartConfigElement mce = this.getWrapper().getMultipartConfigElement(); //... // 讀取MultipartConfigElement對象的location屬性 String locationStr = mce.getLocation(); File location; if (locationStr != null && locationStr.length() != 0) { location = new File(locationStr); if (!location.isAbsolute()) { location = (new File((File)context.getServletContext().getAttribute('javax.servlet.context.tempdir'), locationStr)).getAbsoluteFile(); } } else { // 如果location屬性值為空,則讀取Servlet上下文對象的屬性“javax.servlet.context.tempdir”值(如:/tmp/tomcat.6574404581312272268.18333/work/Tomcat/localhost/ROOT) location = (File)context.getServletContext().getAttribute('javax.servlet.context.tempdir'); } //...}解決辦法

既然是因為上傳文件的臨時路徑被刪除導致的問題,就要確保改臨時目錄不會被刪除。2種解決方法:(1)通過Spring Boot的配置參數“spring.servlet.multipart.location”明確指定上傳文件的臨時目錄,確保該路徑已經存在,而且該目錄不會被操作系統清除。

spring.servlet.multipart.location=/data/tmp

如上所示,將上傳文件的臨時目錄指定到路徑“/data/tmp”下。

實際上,在Spring Boot中關于上傳文件的所有配置參數如下所示:

# MULTIPART (MultipartProperties)spring.servlet.multipart.enabled=true # Whether to enable support of multipart uploads.spring.servlet.multipart.file-size-threshold=0B # Threshold after which files are written to disk.spring.servlet.multipart.location= # Intermediate location of uploaded files.spring.servlet.multipart.max-file-size=1MB # Max file size.spring.servlet.multipart.max-request-size=10MB # Max request size.spring.servlet.multipart.resolve-lazily=false # Whether to resolve the multipart request lazily at the time of file or parameter access.

(2)在Spring容器中明確注冊MultipartConfigElement對象,通過MultipartConfigFactory指定一個路徑。在上述源碼追蹤中就發現,Tomcat會使用MultipartConfigElement對象的location屬性作為上傳文件的臨時目錄。

/** * 配置上傳文件臨時目錄 * @return */@Beanpublic MultipartConfigElement multipartConfigElement() { MultipartConfigFactory factory = new MultipartConfigFactory(); // tmp.dir參數在啟動腳本中設置 String path = System.getProperty('tmp.dir'); if(path == null || ''.equals(path.trim())) { path = System.getProperty('user.dir'); } String location = path + '/tmp'; File tmpFile = new File(location); // 如果臨時目錄不存在則創建 if (!tmpFile.exists()) { tmpFile.mkdirs(); } // 明確指定上傳文件的臨時目錄 factory.setLocation(location); return factory.createMultipartConfig();}參考

https://stackoverflow.com/questions/50523407/the-temporary-upload-location-tmp-tomcat-4296537502689403143-5000-work-tomcat/50523578

以上就是Spring Boot應用上傳文件時報錯的原因及解決方案的詳細內容,更多關于Spring Boot應用上傳文件時報錯的資料請關注好吧啦網其它相關文章!

標簽: Spring
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
国产精品久久久久久久久妇女| 免费视频久久| 天堂精品久久久久| 日日夜夜免费精品| 日韩精品五月天| 欧美永久精品| 牛牛精品成人免费视频| 国内精品伊人| 高清在线一区| 欧美日韩尤物久久| 欧美.日韩.国产.一区.二区| 亚洲精品1区2区| 亚洲综合福利| 欧美激情视频一区二区三区在线播放| 韩国一区二区三区视频| 久久精品导航| 蜜臀久久久99精品久久久久久| 亚洲精品护士| 麻豆高清免费国产一区| 色在线中文字幕| 日韩精品久久久久久| 不卡一二三区| 四虎成人av| 国产精品不卡| 欧美国产91| 亚洲专区视频| 久久精品国产99国产精品| 欧美日韩国产观看视频| 欧美精品羞羞答答| 日韩av网站免费在线| 欧美丰满日韩| 丝袜美腿一区二区三区| 日韩动漫一区| 岛国av免费在线观看| 99视频+国产日韩欧美| 国产麻豆一区二区三区精品视频| 神马久久午夜| 亚洲最新av| 免费亚洲婷婷| 91成人网在线观看| 久久国内精品视频| 日韩精品影视| 欧美日韩亚洲一区二区三区在线| 欧美一区二区三区高清视频 | 欧美视频久久| 日韩和的一区二在线| 综合在线一区| 日韩国产一区二区| 日韩高清不卡在线| а√在线中文在线新版| 亚洲一区日韩在线| av资源中文在线天堂| 日韩三级久久| 99久久99久久精品国产片果冰| 日韩激情啪啪| 亚洲国产一区二区三区在线播放| 国产精品一区二区99| 国产亚洲永久域名| 日韩中文首页| 国产精品欧美三级在线观看| 伊人精品视频| 肉色欧美久久久久久久免费看| 欧美久久久网站| 亚洲在线网站| 日韩高清中文字幕一区二区| 青青草伊人久久| 樱桃成人精品视频在线播放| 日本激情一区| 国产乱子精品一区二区在线观看 | 美女精品一区二区| 美国欧美日韩国产在线播放| 日韩三区在线| 国产中文在线播放| 国产精品高潮呻吟久久久久| 亚洲人成在线影院| 黄色亚洲精品| 久久视频国产| 在线精品亚洲欧美日韩国产| 国产精品亚洲综合在线观看| 亚洲久久视频| 亚洲一区二区三区免费在线观看| 久久国产电影| 亚洲黄色网址| 精品国产不卡| 免费亚洲一区| 国产精品chinese| 91精品国产自产观看在线 | 久久高清一区| 91精品99| 欧美日韩国产一区精品一区| 天堂资源在线亚洲| 吉吉日韩欧美| 日韩在线综合| 久久精品123| 性欧美xxxx免费岛国不卡电影| 99久久精品网站| 在线日韩一区| 欧美日韩中文一区二区| 电影亚洲精品噜噜在线观看| 欧美精品不卡| 精品一级视频| 给我免费播放日韩视频| 超级白嫩亚洲国产第一| 另类专区亚洲| 性欧美xxxx免费岛国不卡电影| 97精品中文字幕| 成人久久久久| 精品1区2区3区4区| 亚洲欧洲美洲国产香蕉| 伊人久久大香伊蕉在人线观看热v| 噜噜噜躁狠狠躁狠狠精品视频| 久久av一区二区三区| 蜜桃久久精品一区二区| 日本不卡高清视频| 中文字幕亚洲影视| 天堂va欧美ⅴa亚洲va一国产| 日韩免费精品| 久久精品国产亚洲aⅴ| 亚洲成a人片| 蜜臀av免费一区二区三区| 日韩视频精品在线观看| 免费成人av在线播放| 国产精品亚洲产品| 精品国产亚洲日本| 欧美不卡高清一区二区三区| 国产视频亚洲| 日本成人一区二区| 欧美日韩国产观看视频| 午夜日韩av| 三级亚洲高清视频| 国产日韩欧美一区二区三区| 久久99视频| 久久精品亚洲人成影院| 老色鬼久久亚洲一区二区| 日韩黄色免费网站| 国产伊人久久| 欧美日韩少妇| 91av一区| 久久男人av资源站| 国产模特精品视频久久久久| 视频一区日韩| 中文在线资源| 蜜桃视频免费观看一区| 精品久久久中文字幕| 蜜桃国内精品久久久久软件9| 午夜久久av| 97精品在线| 中文字幕亚洲影视| 欧美xxxx中国| 一区二区91| 在线一区av| 欧美日一区二区三区在线观看国产免| 亚洲国产成人二区| 亚洲精品欧美| 久久久久一区| 久久精品凹凸全集| 五月天激情综合网| 麻豆91精品91久久久的内涵| 9国产精品视频| 国产精品一级| 黄色国产精品| 日本欧美国产| 日韩高清欧美激情| 亚洲视频综合| 久久精品网址| 亚洲精一区二区三区| 日韩欧美一区二区三区在线观看 | 在线视频观看日韩| 国产人成精品一区二区三| 日韩三区在线| 国产精品资源| 首页亚洲欧美制服丝腿| 国产成人精品一区二区三区视频| 六月婷婷一区| 久久伦理在线| 国产一区不卡| 日本天堂一区| 亚洲免费黄色| 日韩在线中文| 久久av综合| 91精品国产自产精品男人的天堂| 国产午夜久久| 亚洲激情中文在线| 日韩在线观看不卡| 久久的色偷偷| 久久精品 人人爱| 日韩中文字幕1| 国产一区日韩欧美| 国产精品专区免费| 久久精品一区二区三区中文字幕| 亚洲毛片在线| 丝袜美腿亚洲一区二区图片| 国产91一区| 999国产精品999久久久久久| 高清日韩欧美| 国产一区二区三区四区二区| 日本午夜免费一区二区 | 亚洲精品99| 麻豆精品蜜桃| 亚洲午夜天堂|