关于Java数据转存的中MultipartFile转File的问题(转)

转自http://www.cnblogs.com/zuoxiaoxia/p/6116942.htmlhtml

错误背景:因为文件储存在第三方的服务器上,全部须要讲将接收到MultipartFile文件 转换为File 而后传输。(Spring MVC)java

经过搜索引擎  找到了如下两种方法。web

 均要在先spring xml中声明。以下: spring

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

如需添加最大,最小等范围控制,请自行百度参考。服务器

方法一:强转搜索引擎

方法二:spa

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

亲测有效。可是后期发现设置的问题 致使文件转换中错误,文件不可读从而致使 程序抛出  is not a normal file  异常。code

由于错误出现的随机性很大,因此选择用缓冲区来实现这个转换即便用java 建立的临时文件 使用 MultipartFile.transferto()方法 。orm

代码以下:xml

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();
}

亲测有效。

相关文章
相关标签/搜索