zoukankan      html  css  js  c++  java
  • 关于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(); }

    亲测有效。

  • 相关阅读:
    1001.A+B Format(20)
    大一下学期的自我目标
    re模块3
    re模块2
    re模块
    configParser模块
    logging模块
    hashlib模块
    sys模块
    isinstance函数
  • 原文地址:https://www.cnblogs.com/zuoxiaoxia/p/6116942.html
Copyright © 2011-2022 走看看