MultipartFile互转File(亲测可用)

前端传过来MultipartFile,后端转为file后删除本地缓存文件

后台接收的需要转换为一个File类型的

接受前端文件:

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

MultipartFile转File

package com.hswg.jstxb.issued.common.FileUtil;
 
import org.springframework.web.multipart.MultipartFile;
 
import java.io.File;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.io.OutputStream;
 

public class MultipartFileToFile {


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

File转MultipartFile

添加依赖

<!-- https://mvnrepository.com/artifact/org.springframework/spring-mock -->
<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-mock</artifactId>
    <version>2.0.8</version>
</dependency>

代码

/**
	 * @param
	 * @return
	 * @author:liuyu
	 * @创建日期:2020年3月5日
	 * @功能说明:File转MultipartFile
	 */
	private static MultipartFile fileToMultipartFile(File file) throws Exception {
		InputStream inputStream = new FileInputStream(file);
		MultipartFile multipartFile = new MockMultipartFile(file.getName(), inputStream);
		return multipartFile;

	}

java将File转换为MultipartFile的两种方法

要将File换为MultipartFile,有几种方法可以实现。 第一种方法是使用commons-io库中的FileUtils类。你可以使用FileUtils.copyInputStreamToFile()方法,将MultipartFile中的内容复制到临时文件中。然后,你可以创建一个MockMultipartFile对象,将临时文件的内容作为输入流传递给它的构造函数。最后,将MockMultipartFile对象返回即可。 第二种方法是使用MultipartFile接口的transferTo()方法。首先,你需要创建一个临时文件,然后调用transferTo()方法将MultipartFile中的内容传输到临时文件中。 第三种方法是使用apache.commons-io库的FileUtils类的writeByteArrayToFile()方法。你可以将MultipartFile中的字节数组通过writeByteArrayToFile()方法写入到一个临时文件中。然后,你可以创建一个MockMultipartFile对象,将临时文件的内容作为输入流传递给它的构造函数。 要将MultipartFile换为File,也有几种方法可以实现。 第一种方法是使用commons-io库的FileUtils类的copyInputStreamToFile()方法。你可以将MultipartFile中的内容复制到一个临时文件中。 第二种方法是使用MultipartFile接口的getBytes()方法获取MultipartFile的字节数组,然后使用FileUtils类的writeByteArrayToFile()方法将字节数组写入到文件中。 总之,无论是将File换为MultipartFile还是将MultipartFile换为File,都需要创建一个临时文件,并在换过程中对文件进行操作。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [MultipartFileFile互转](https://blog.csdn.net/qq_29864051/article/details/129478353)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值