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

    亲测有效。

  • 相关阅读:
    openstack首页默认跳转
    centos7.3挂在移动硬盘(亲测)
    管理openstack多region介绍与实践
    一款功能强悍的web磁盘管理工具 (A powerful web disk management tools)
    文件及目录的归属关系
    Linux 权限基础说明
    umask默认权限分配
    linux删除、读取文件原理
    linux 文件类型
    LINUX 目录结构
  • 原文地址:https://www.cnblogs.com/YangK-java/p/7490249.html
Copyright © 2020-2023  润新知