MultipartFile.transferTo(targetFile)

時(shí)間:2020.12.4

異常:java.io.FileNotFoundException: /home/jdp/apache-tomcat-8.5.54-8-group/apache-tomcat-8.5.54-80/work/Catalina/localhost/ROOT/upload_cda0de04_fa66_4589_8170_5cb0cb7f8152_00000005.tmp

初步判斷:文件上傳路徑問題,但是項(xiàng)目路徑中并未配置這個(gè)路徑谬盐,后面了解到 /work 是tomcat 編譯文件的臨時(shí)路徑恤左,聯(lián)想到 /work 之后的文件可能是上傳的臨時(shí)文件路徑斋否,而前面的路徑是tomcat的絕對路徑

探索1:項(xiàng)目配置的文件路徑為/home/temp, 可能是因?yàn)閠omcat的臨時(shí)文件路徑和我們上傳的臨時(shí)文件路徑不匹配導(dǎo)致的

嘗試1:設(shè)置tomcat 臨時(shí)文件路徑 在 application.properites 中配置 增加配置 server.tomcat.basedir=/home/temp

結(jié)果1:未解決,報(bào)錯(cuò)不變

探索2:查閱資料得知 MultipartFile.transferTo(targetFile) 方法是面向絕對路徑的痒玩,如果入?yún)⑹且粋€(gè)相對路徑,則會(huì)在路徑之前加上 一個(gè)系統(tǒng)絕對路徑(比較符合我們的情況)

嘗試2:根據(jù)文章所述:增加配置類 指定臨時(shí)文件的路徑

@Configuration

public class FileUploadConfig {

?

? ? @Value("${file.temp.root}")

? ? private String FILE_TEMP_ROOT;

?

? ? /**

? ? * 文件上傳配置

? ? *

? ? * @return MultipartConfigElement

? ? */

? ? @Bean

? ? public MultipartConfigElement multipartConfigElement(

? ? ? ? ? ? @Value("${multipart.maxFileSize}") String maxFileSize,

? ? ? ? ? ? @Value("${multipart.maxRequestSize}") String maxRequestSize) {

? ? ? ? MultipartConfigFactory factory = new MultipartConfigFactory();

? ? ? ? // 單個(gè)文件最大

? ? ? ? factory.setMaxFileSize(maxFileSize);

? ? ? ? // 設(shè)置總上傳數(shù)據(jù)總大小

? ? ? ? factory.setMaxRequestSize(maxRequestSize);

? ? ? ? //上傳臨時(shí)路徑

? ? ? ? File file = new File(FILE_TEMP_ROOT);

? ? ? ? if (!file.exists()) {

? ? ? ? ? ? file.mkdirs();

? ? ? ? }

? ? ? ? factory.setLocation(FILE_TEMP_ROOT);

? ? ? ? return factory.createMultipartConfig();

? ? }

}

結(jié)果2:報(bào)錯(cuò)發(fā)生變化,變成了我們的指定的路徑加上 臨時(shí)文件名俏险,但是依舊未能解決問題

java.io.FileNotFoundException: /home/temp/upload_a8eb4246_470f_4f73_81af_891f1ad6651b_00000002.tmp

轉(zhuǎn)換思路:既然是transferTo()方法的問題,換一個(gè)方法

探索3:更換transferTo()方法扬绪,使用 FileUtils.copyInputStreamToFile(sourceFile.getInputStream(), targetFile);方法

嘗試3:尋找方法中包涵的transfTo()方法竖独,替換成FileUtils.copyInputStreamToFile(sourceFile.getInputStream(), targetFile);

結(jié)果3:問題解決

總結(jié):transferTo()在windows 系統(tǒng)上并沒有這個(gè)問題,在Linux上出現(xiàn)了這個(gè)問題挤牛,網(wǎng)上的資料各有說法莹痢,目前未找到真正的原因。為了避免這個(gè)問題,統(tǒng)一使用FileUtils.copyInputStreamToFile(sourceFile.getInputStream(), targetFile);方法來復(fù)制文件格二。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末劈彪,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子顶猜,更是在濱河造成了極大的恐慌沧奴,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,607評論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件长窄,死亡現(xiàn)場離奇詭異滔吠,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)挠日,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,239評論 3 395
  • 文/潘曉璐 我一進(jìn)店門疮绷,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人嚣潜,你說我怎么就攤上這事冬骚。” “怎么了懂算?”我有些...
    開封第一講書人閱讀 164,960評論 0 355
  • 文/不壞的土叔 我叫張陵只冻,是天一觀的道長。 經(jīng)常有香客問我计技,道長喜德,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,750評論 1 294
  • 正文 為了忘掉前任垮媒,我火速辦了婚禮舍悯,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘睡雇。我一直安慰自己萌衬,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,764評論 6 392
  • 文/花漫 我一把揭開白布它抱。 她就那樣靜靜地躺著奄薇,像睡著了一般。 火紅的嫁衣襯著肌膚如雪抗愁。 梳的紋絲不亂的頭發(fā)上馁蒂,一...
    開封第一講書人閱讀 51,604評論 1 305
  • 那天,我揣著相機(jī)與錄音蜘腌,去河邊找鬼沫屡。 笑死,一個(gè)胖子當(dāng)著我的面吹牛撮珠,可吹牛的內(nèi)容都是我干的沮脖。 我是一名探鬼主播,決...
    沈念sama閱讀 40,347評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼勺届!你這毒婦竟也來了驶俊?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,253評論 0 276
  • 序言:老撾萬榮一對情侶失蹤免姿,失蹤者是張志新(化名)和其女友劉穎饼酿,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體胚膊,經(jīng)...
    沈念sama閱讀 45,702評論 1 315
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡故俐,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,893評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了紊婉。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片药版。...
    茶點(diǎn)故事閱讀 40,015評論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖喻犁,靈堂內(nèi)的尸體忽然破棺而出槽片,到底是詐尸還是另有隱情,我是刑警寧澤肢础,帶...
    沈念sama閱讀 35,734評論 5 346
  • 正文 年R本政府宣布筐乳,位于F島的核電站,受9級特大地震影響乔妈,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜氓皱,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,352評論 3 330
  • 文/蒙蒙 一路召、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧波材,春花似錦股淡、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,934評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至隙轻,卻和暖如春埠帕,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背玖绿。 一陣腳步聲響...
    開封第一講書人閱讀 33,052評論 1 270
  • 我被黑心中介騙來泰國打工敛瓷, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人斑匪。 一個(gè)月前我還...
    沈念sama閱讀 48,216評論 3 371
  • 正文 我出身青樓呐籽,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個(gè)殘疾皇子狡蝶,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,969評論 2 355