Java MultipartFile 转 File:不创建临时文件的三种方法
在Java中,如果你想将MultipartFile对象转换为File对象而不创建临时文件或本地文件,有以下几种方法:
- 使用
CommonsMultipartFile类(仅适用于Spring框架):
import org.springframework.web.multipart.commons.CommonsMultipartFile;
import org.apache.commons.io.FileUtils;
public File convertMultipartFileToFile(CommonsMultipartFile multipartFile) throws IOException {
File file = new File(multipartFile.getOriginalFilename());
FileUtils.writeByteArrayToFile(file, multipartFile.getBytes());
return file;
}
- 使用
DiskFileItem类(仅适用于Servlet API):
import org.apache.commons.fileupload.disk.DiskFileItem;
import org.apache.commons.io.FileUtils;
public File convertMultipartFileToFile(MultipartFile multipartFile) throws IOException {
DiskFileItem fileItem = (DiskFileItem) multipartFile.getFileItem();
File file = fileItem.getStoreLocation();
return file;
}
- 使用
InputStream(适用于任何Java应用程序):
import java.io.File;
import java.io.IOException;
import java.io.InputStream;
import java.nio.file.Files;
import java.nio.file.StandardCopyOption;
public File convertMultipartFileToFile(MultipartFile multipartFile) throws IOException {
File file = new File(multipartFile.getOriginalFilename());
try (InputStream inputStream = multipartFile.getInputStream()) {
Files.copy(inputStream, file.toPath(), StandardCopyOption.REPLACE_EXISTING);
}
return file;
}
这些方法中,第一个方法适用于Spring框架中使用的MultipartFile接口,第二个方法适用于Servlet API中的MultipartFile接口,第三个方法是通用的,适用于任何Java应用程序。
原文地址: https://www.cveoy.top/t/topic/qnji 著作权归作者所有。请勿转载和采集!