要将 MultipartFile 转换为 File 对象,可以使用 DiskFileItem 类或 FileUtils 类。这两种方法各有优缺点,您可以根据实际情况选择最适合的方法。

方法一:使用 DiskFileItem 类直接转换

DiskFileItem 是 Commons FileUpload 库中的一个类,用于处理文件上传。您可以使用 DiskFileItem 类的方法将 MultipartFile 直接转换为 File 对象,无需创建临时文件。

import org.apache.commons.fileupload.disk.DiskFileItem;
import org.springframework.web.multipart.MultipartFile;

import java.io.File;
import java.io.IOException;

public File convertMultipartFileToFile(MultipartFile multipartFile) throws IOException {
    DiskFileItem fileItem = (DiskFileItem) multipartFile.getFileItem();
    return fileItem.getStoreLocation();
}

方法二:使用 FileUtils 类将内容复制到临时文件

如果您不想使用 DiskFileItem 类,可以使用 Apache Commons IO 库的 FileUtils 类将 MultipartFile 的内容复制到临时文件中,然后再将临时文件转换为 File 对象。

import org.apache.commons.io.FileUtils;
import org.springframework.web.multipart.MultipartFile;

import java.io.File;
import java.io.IOException;

public File convertMultipartFileToFile(MultipartFile multipartFile) throws IOException {
    File tempFile = File.createTempFile("temp", null);
    multipartFile.transferTo(tempFile);
    return tempFile;
}

总结

使用 DiskFileItem 类的方法无需创建临时文件,但需要添加 Commons FileUpload 库依赖。使用 FileUtils 类的方法会创建临时文件,但操作简单,无需依赖其他库。您可以根据实际情况选择最适合您的方法。

MultipartFile 转 File:无临时文件方法 & 代码示例

原文地址: https://www.cveoy.top/t/topic/qnj9 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录