当前位置:首页 » 《随便一记》 » 正文

java:File与MultipartFile互转

21 人参与  2024年09月25日 19:21  分类 : 《随便一记》  评论

点击全文阅读


1 概述

当我们在处理文件上传的功能时,通常会使用MultipartFile对象来表示上传的文件数据。然而,有时候我们可能已经有了一个File对象,而不是MultipartFile对象,需要将File对象转换为MultipartFile对象进行进一步处理。

在Java中,File对象表示文件在本地文件系统中的引用,而MultipartFile对象是Spring框架提供的用于处理文件上传的接口。MultipartFile接口提供了许多有用的方法,例如获取文件名、获取文件内容、获取文件大小等。

2 代码示例

2.1 引入依赖

<!--File转MultipartFile需要test包--><dependency><groupId>org.springframework</groupId><artifactId>spring-test</artifactId><version>5.1.9.RELEASE</version><scope>compile</scope></dependency>

2.2 MultipartFile转File

    public static File convert(MultipartFile file) throws IOException {        File convFile = new File(file.getOriginalFilename());        convFile.createNewFile();        FileOutputStream fos = new FileOutputStream(convFile);        fos.write(file.getBytes());        fos.close();        return convFile;    }

2.3 File转MultipartFile

//file 转换为 MultipartFile    private  MultipartFile getMulFileByPath(String filePath)    {        FileItemFactory factory = new DiskFileItemFactory(16, null);        String textFieldName = "textField";        int num = filePath.lastIndexOf(".");        String extFile = filePath.substring(num);        FileItem item = factory.createItem(textFieldName, "text/plain", true,                "MyFileName" + extFile);        File newfile = new File(filePath);        int bytesRead = 0;        byte[] buffer = new byte[8192];        try        {            FileInputStream fis = new FileInputStream(newfile);            OutputStream os = item.getOutputStream();            while ((bytesRead = fis.read(buffer, 0, 8192))                    != -1)            {                os.write(buffer, 0, bytesRead);            }            os.close();            fis.close();        }        catch (IOException e)        {            e.printStackTrace();        }         MultipartFile mfile = new CommonsMultipartFile(item);        return mfile;    }


点击全文阅读


本文链接:http://zhangshiyu.com/post/164611.html

<< 上一篇 下一篇 >>

  • 评论(0)
  • 赞助本站

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

关于我们 | 我要投稿 | 免责申明

Copyright © 2020-2022 ZhangShiYu.com Rights Reserved.豫ICP备2022013469号-1