在Java中,如果你想将MultipartFile对象转换为File对象而不创建临时文件或本地文件,有以下几种方法:

  1. 使用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;
}
  1. 使用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;
}
  1. 使用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应用程序。

Java MultipartFile 转 File:不创建临时文件的三种方法

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

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