把MultipartFile文件转为File文件

    //把文件MultipartFile转为File
    public static File MultipartFileToFile(MultipartFile multiFile) {
        // 获取文件名
        String fileName = multiFile.getOriginalFilename();
        // 获取文件后缀
        String prefix = fileName.substring(fileName.lastIndexOf("."));
        // 若需要防止生成的临时文件重复,可以在文件名后添加随机码
        try {
            File file = File.createTempFile(fileName, prefix);
            multiFile.transferTo(file);
            return file;
        } catch (Exception e) {
            e.printStackTrace();
        }
        return null;
    }

MultipartFile格式转为File的方法有两种,具体如下: 方法一:使用commons-fileupload依赖 首先,你需要在项目中添加commons-fileupload依赖。在pom.xml文件中添加以下代码: ```xml <!-- 上传文件 --> <dependency> <groupId>commons-fileupload</groupId> <artifactId>commons-fileupload</artifactId> <version>1.3.2</version> </dependency> ``` 然后,你可以使用以下代码将MultipartFile转为File: ```java import org.apache.commons.io.FileUtils; import org.springframework.web.multipart.MultipartFile; // 具体实现转换 MultipartFile mfile = ...; // 你的MultipartFile对象 File file = new File(mfile.getOriginalFilename()); FileUtils.copyInputStreamToFile(mfile.getInputStream(), file); // 这种方法会在本地产生临时文件,用完后需要删除 if (file.exists()) { file.delete(); } ``` 方法二:使用Java原生方法 你也可以使用Java原生方法将MultipartFile转为File,代码如下: ```java import java.io.File; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import org.springframework.web.multipart.MultipartFile; // 具体实现转换 MultipartFile mfile = ...; // 你的MultipartFile对象 File file = new File(mfile.getOriginalFilename()); try (InputStream inputStream = mfile.getInputStream(); OutputStream outputStream = new FileOutputStream(file)) { int bytesRead; byte[] buffer = new byte[8192]; while ((bytesRead = inputStream.read(buffer, 0, 8192)) != -1) { outputStream.write(buffer, 0, bytesRead); } } ``` 这两种方法都可以将MultipartFile转为File格式的文件。方法一使用了commons-fileupload依赖,方法二则使用了Java原生的输入输出流。你可以根据自己的需求选择其中一种方法来实现转换。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值