關於Java數據轉存的中MultipartFile轉File的問題(轉)


轉自http://www.cnblogs.com/zuoxiaoxia/p/6116942.html

錯誤背景:由於文件儲存在第三方的服務器上,所有需要講將接收到MultipartFile文件 轉換為File 然后傳輸。(Spring MVC)

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

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

<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver" />  

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

方法一:強轉

方法二:

1
2
3
CommonsMultipartFile cf = (CommonsMultipartFile)multfile;  
DiskFileItem fi = (DiskFileItem) cf.getFileItem(); 
File file = fi.getStoreLocation();

親測有效。但是后期發現設置的問題 導致文件轉換中錯誤,文件不可讀從而導致 程序拋出  is not a normal file  異常。

因為錯誤出現的隨機性很大,所以選擇用緩沖區來實現這個轉換即使用java 創建的臨時文件 使用 MultipartFile.transferto()方法 。

代碼如下:

1
2
3
4
5
6
7
8
9
File f =  null ;
try  {
     f=File.createTempFile( "tmp" null ); // 創建file臨時文件
     file.transferTo(f);<br>   f.deleteOnExit(); // 將CommonsMultipartFile的臨時文件的數據轉到File 對象的臨時文件   
catch  (HttpException e) {
     e.printStackTrace();
catch  (IOException e) {
     e.printStackTrace();
}

親測有效。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM