File和MultipartFile互相转化工具类

简介: File和MultipartFile互相转化工具类

1 File转MultipartFile工具类

引入以下依赖:

<dependency>
    <groupId>commons-fileupload</groupId>
    <artifactId>commons-fileupload</artifactId>
    <version>1.3.1</version>
</dependency>

下面是具体代码:

package com.oldlu.file.excel.one;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.OutputStream;
import org.apache.commons.fileupload.FileItem;
import org.apache.commons.fileupload.FileItemFactory;
import org.apache.commons.fileupload.disk.DiskFileItemFactory;
import org.springframework.web.multipart.MultipartFile;
import org.springframework.web.multipart.commons.CommonsMultipartFile;
public class FileUtil {
    public MultipartFile fileToMultipartFile(File file) {
        FileItem fileItem = createFileItem(file);
        MultipartFile multipartFile = new CommonsMultipartFile(fileItem);
        return multipartFile;
    }
    private static FileItem createFileItem(File file) {
        FileItemFactory factory = new DiskFileItemFactory(16, null);
        FileItem item = factory.createItem("textField", "text/plain", true, file.getName());
        int bytesRead = 0;
        byte[] buffer = new byte[8192];
        try {
            FileInputStream fis = new FileInputStream(file);
            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();
        }
        return item;
    }
}

复制代码

  注意:导入的是org.apache.commons下的包,一定记住,我踩过的雷。。。

2 MultipartFile转File

接受前端文件:

MultipartFile file111 = ((MultipartHttpServletRequest) httpServletRequest).getFile("前端传得文件名");

转换:

package com.oldlu.common.FileUtil;/**
 * Created by oldlu
 */
import org.springframework.web.multipart.MultipartFile;
import java.io.File;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.io.OutputStream;
/**
 * @ClassName MultipartFileToFile
 * @Description MultipartFile转fie
 * @Author oldlu
 **/
public class MultipartFileToFile {
    /**
     * MultipartFile 转 File
     *
     * @param file
     * @throws Exception
     */
    public static File multipartFileToFile(MultipartFile file) throws Exception {
        File toFile = null;
        if (file.equals("") || file.getSize() <= 0) {
            file = null;
        } else {
            InputStream ins = null;
            ins = file.getInputStream();
            toFile = new File(file.getOriginalFilename());
            inputStreamToFile(ins, toFile);
            ins.close();
        }
        return toFile;
    }
    //获取流文件
    private static void inputStreamToFile(InputStream ins, File file) {
        try {
            OutputStream os = new FileOutputStream(file);
            int bytesRead = 0;
            byte[] buffer = new byte[8192];
            while ((bytesRead = ins.read(buffer, 0, 8192)) != -1) {
                os.write(buffer, 0, bytesRead);
            }
            os.close();
            ins.close();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
    /**
     * 删除本地临时文件
     * @param file
     */
    public static void delteTempFile(File file) {
    if (file != null) {
        File del = new File(file.toURI());
        del.delete();
    }
}
}


目录
相关文章
|
Java
SpringBoot实现文件上传接口
文件上传是很多业务场景需要实现的功能,今天就简单以Springboot框架为基础实现文件上传的接口。
2711 0
SpringBoot实现文件上传接口
|
JSON Java 数据格式
|
存储 安全 Java
解析 Java 的 MultipartFile 接口:实现文件上传的全面指南
在现代的 Web 开发中,文件上传是一个常见的需求,而 Java 中的 `MultipartFile` 接口正是用来处理这类任务的重要工具。无论是上传图片、音频、视频还是其他文件类型,`MultipartFile` 都提供了便捷的方法来处理文件的接收和存储。本文将带您深入探索 Java 中的 `MultipartFile` 接口,揭示其功能、用法以及在实际开发中的应用场景。
|
3月前
|
机器学习/深度学习 算法 API
淘宝API图片搜索 | 天猫商品图片识别 | 一键上传找相似商品
淘宝图片搜索API(拍立淘)基于图像识别与深度学习技术,支持通过图片查找相似商品,适用于比价、找同款等场景。提供精准匹配、多参数调节,助力开发者打造智能购物应用,提升搜索效率与用户体验。
|
XML 前端开发 Java
怎样将MultipartFile和File互转
该文介绍了如何在Java开发中优雅地转换MultipartFile和File。MultipartFile是Spring框架用于接收上传文件的类,而File是操作系统文件的代表。文章提供了三种将MultipartFile转换为File的方法:使用`transferTo`方法、FileOutputStream和Java NIO。另外,还介绍了在测试场景下将File转换为MultipartFile,通过MockMultipartFile实现。
1668 1
|
11月前
|
Java
java引入本地 MultipartFile 实现多部分文件上传
在Java中,`MultipartFile`通常用于处理通过HTML表单上传的文件。但在某些情况下,需要直接从本地文件系统获取文件并上传。本文介绍如何创建一个实现了`MultipartFile`接口的本地类`LocalMultipartFile`,将本地文件转换为`MultipartFile`对象,简化文件上传流程。此方法适用于批量上传等场景,避免了表单上传的复杂性。代码示例展示了如何实现和使用该类进行文件上传操作。作者:华科云商小彭。链接:[稀土掘金](https://juejin.cn/post/7377559533785530431)。
587 18
|
Java Spring
SpringBoot: 启动Banner在线生成工具
SpringBoot: 启动Banner在线生成工具
37646 1
SpringBoot: 启动Banner在线生成工具
|
消息中间件 JSON Java
Spring Boot、Spring Cloud与Spring Cloud Alibaba版本对应关系
Spring Boot、Spring Cloud与Spring Cloud Alibaba版本对应关系
31862 0