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

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

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

瀏覽:21日期: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久久,三上悠亚国产精品一区二区三区
久久久久久久久久久妇女| 亚洲精品国模| 欧美一级精品| 国产一级一区二区| 国产精区一区二区| 国产高清视频一区二区| 亚洲欧洲日韩| 欧美日韩亚洲一区| 国产午夜久久av| 99视频精品全国免费| 国产一区二区三区视频在线| 国产精品sm| 日本午夜精品久久久| 免费一区二区三区在线视频| 美女av在线免费看| 蜜桃av在线播放| 精品亚洲精品| 国产精品二区影院| 欧美专区在线| 日日夜夜免费精品| 亚洲精品三级| 日本综合精品一区| 精品一区二区三区四区五区| 亚洲综合电影| 久久香蕉网站| 不卡中文字幕| 亚洲视频电影在线| 视频一区视频二区在线观看| 在线天堂资源www在线污| 精品三级在线观看视频| 蜜桃精品在线| 在线亚洲自拍| 蜜臀精品久久久久久蜜臀 | 亚洲精品一二三区区别| 欧美日韩一二三四| www成人在线视频| 午夜久久福利| 亚洲精品影视| 久久99影视| 91精品推荐| 日韩精品一卡二卡三卡四卡无卡| 日韩精品一区二区三区免费视频| 免费视频一区二区三区在线观看| 日韩国产一区二区三区| 亚洲综合另类| 国产乱码精品| 天堂网av成人| 午夜在线视频观看日韩17c| 日韩不卡一二三区| 精品美女久久| 99在线精品免费视频九九视| 日本视频一区二区| 日韩深夜视频| 免费精品视频最新在线| 美女精品久久| 亚洲欧美日本国产专区一区| 国产精品高清一区二区| 黄色av日韩| 国产精品视频一区二区三区| 久久久亚洲一区| 日本精品一区二区三区在线观看视频 | 韩国一区二区三区视频| 亚洲女人av| 国产精品久久观看| 亚洲3区在线| 狠狠躁少妇一区二区三区| 亚洲美女91| 日韩精品电影| 欧美综合精品| 亚洲精品在线观看91| 国产精品99精品一区二区三区∴| 欧美大黑bbbbbbbbb在线| 久久精品一区二区国产| 亚洲字幕久久| 欧美一级精品| 国产精品v亚洲精品v日韩精品 | 神马午夜久久| 免费亚洲婷婷| 涩涩涩久久久成人精品| 久久久精品午夜少妇| 免费在线播放第一区高清av| 一区二区不卡| 欧美日韩尤物久久| 久久精品 人人爱| 亚洲欧美日本日韩| 久久激情一区| 久久精品国产福利| 日韩高清不卡在线| 亚洲婷婷在线| 精品丝袜久久| 欧美日一区二区在线观看| 国产农村妇女精品一二区| 日韩欧美在线中字| 国产精品久久久久久久久免费高清| 香蕉成人久久| 99精品国产一区二区三区| 国产欧美综合一区二区三区| 亚洲视频电影在线| 99xxxx成人网| 亚洲18在线| 亚洲国产日韩欧美在线| 国产精品福利在线观看播放| 日韩精品中文字幕一区二区| 99国产精品视频免费观看一公开| 欧美黑人做爰爽爽爽| 日韩国产精品久久久久久亚洲| 91久久黄色| 久久夜夜操妹子| 色乱码一区二区三区网站| 欧美精品中文字幕亚洲专区| 日韩精品视频网站| 视频一区二区欧美| 国产视频亚洲| 欧美粗暴jizz性欧美20| 日韩av二区| 中文在线免费视频| 久久香蕉精品香蕉| 福利欧美精品在线| 国产成人久久| 国产激情久久| 国产精品极品在线观看| 91精品国产自产在线丝袜啪| 日韩一区二区三区免费视频 | 日韩在线免费| 日韩伦理福利| 精品三级久久| 国产精品亚洲一区二区三区在线观看| 福利一区和二区| 日本不卡免费高清视频在线| 国产伦久视频在线观看| 国际精品欧美精品| 久久99偷拍| 久久精品国产亚洲aⅴ| 国内自拍视频一区二区三区| 国产成人精品福利| 日本午夜大片a在线观看| 日韩在线短视频| 久久要要av| 亚洲激情偷拍| 最新国产精品| 欧美一区二区三区久久精品| 国产精品v日韩精品v欧美精品网站| 久久不见久久见免费视频7| 久久免费视频66| 日韩在线高清| 国模 一区 二区 三区| 日本欧美不卡| 午夜在线播放视频欧美| 日韩欧美中文字幕一区二区三区| 日本精品国产| 久久女人天堂| 国产麻豆久久| 国产免费成人| 91成人精品在线| 久久免费福利| 亚洲v在线看| 久久最新视频| 91麻豆精品| 欧美激情另类| 亚洲高清不卡| 蜜桃视频第一区免费观看| 日本成人手机在线| 精品视频一二| 免费观看久久av| 亚洲精品日本| 美女精品视频在线| 久久精品av| 亚洲精品伦理| 国产aa精品| 五月婷婷亚洲| 婷婷五月色综合香五月| 国产一区国产二区国产三区| 亚洲国产不卡| 国产视频一区二区在线播放| 中文字幕在线高清| 美女黄网久久| 欧美视频久久| 99久精品视频在线观看视频| 在线亚洲免费| 久久尤物视频| 天堂av在线一区| 国产精品亚洲产品| 精品日韩视频| 婷婷综合一区| 精品捆绑调教一区二区三区| 亚洲18在线| 欧美日韩国产v| 亚洲精品一级二级三级| 日韩在线高清| 青青青国产精品| 久久中文字幕av| 在线看片日韩| 久久影院一区二区三区| 石原莉奈在线亚洲二区| 精品国内亚洲2022精品成人| 欧美特黄一区| 久久99性xxx老妇胖精品| 欧美不卡视频| 国产精品久久国产愉拍| 亚洲专区在线|