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


    错误背景:由于文件储存在第三方的服务器上,所有需要讲将接收到MultipartFile文件 转换为File 然后传输。(Spring MVC)

    通过搜索引擎  找到了以下两种方法。

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

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

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

    方法一:强转

    方法二:

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

    亲测有效。

  • 相关阅读:
    Bzoj1305 [CQOI2009]dance跳舞
    Bzoj1269 [AHOI2006]文本编辑器editor
    Bzoj2957 楼房重建
    POJ1704 Georgia and Bob
    UVa11427 Expect the Expected
    POJ2096 Collecting Bugs
    Bzoj3041 水叮当的舞步
    Bzoj3894 文理分科
    Bzoj1426 收集邮票
    Bzoj1076 [SCOI2008]奖励关
  • 原文地址:https://www.cnblogs.com/zuoxiaoxia/p/6116942.html
Copyright © 2020-2023  润新知