MultipartFile 转 File:无临时文件方法 & 代码示例
要将 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 类的方法会创建临时文件,但操作简单,无需依赖其他库。您可以根据实际情况选择最适合您的方法。
原文地址: https://www.cveoy.top/t/topic/qnj9 著作权归作者所有。请勿转载和采集!