之前公司同事有教,在 Window 在專案 D 朝設定 /app/file
(參照位置),執行時候就會吃D:/app/file
。這個非常實用,不需要再重新配置。
但在用 Spring Boot 會發生讀不到檔案。
1 |
|
解法
1 |
|
重點是在File dest = new File(filePath.getAbsolutePath(), fileName);
。
也可以file.transferTo(filePath.getAbsoluteFile());
一行解決,不過寫完整一點會比較好。
參考來源:
- [Solved] Spring upload file Error: Multipartfile Transferto() reported an error FileNotFoundException | ProgrammerAH
- Multipartfile 上传文件使用 transferTo 抛 java.io.FileNotFoundException C:\Users\admin\AppData\Local\Temp_LoveEate的博客-CSDN博客
- MultipartFile的transferTo方法的坑_CrazyDragon_King的博客-CSDN博客_file transferto
分析原因
參考來源:
一次突如其来的FileNotFoundException – 大狗小窝
因為 file.isAbsolute()
原因會補上location
絕對位置,會造成抓出路徑錯誤位置。