天天看點

java file transferto_關于Java資料轉存的中MultipartFile轉File的問題

錯誤背景:由于檔案儲存在第三方的伺服器上,所有需要講将接收到MultipartFile檔案 轉換為File 然後傳輸。(Spring MVC)

通過搜尋引擎  找到了以下兩種方法。

均要在先spring xml中聲明。如下:

如需添加最大,最小等範圍控制,請自行百度參考。

方法一:強轉

方法二:

CommonsMultipartFile cf = (CommonsMultipartFile)multfile;

DiskFileItem fi = (DiskFileItem) cf.getFileItem();

File file = fi.getStoreLocation();

親測有效。但是後期發現設定的問題 導緻檔案轉換中錯誤,檔案不可讀進而導緻 程式抛出  is not a normal file 異常。

因為錯誤出現的随機性很大,是以選擇用緩沖區來實作這個轉換即使用java 建立的臨時檔案 使用MultipartFile.transferto()方法 。

代碼如下:

File f = null;

try {

f=File.createTempFile("tmp", null);

file.transferTo(f);

f.deleteOnExit();

} catch (HttpException e) {

e.printStackTrace();

} catch (IOException e) {

e.printStackTrace();

}

親測有效。