之前有记录一篇上传文件的博客,MultipartFile转化为File的问题,很多人卡在这里,特整理以下转换的方法
MultipartFile 转换 File
第一种
//把MultipartFile转化为File
File file = new File(multipartFile.getOriginalFilename());
FileUtils.copyInputStreamToFile(multipartFile.getInputStream(),file);
//删除临时文件
if(file.exists()){
file.delete();
}
第二种
//把MultipartFile转化为File
CommonsMultipartFile cmf = (CommonsMultipartFile)multipartFile;
DiskFileItem dfi = (DiskFileItem) cmf.getFileItem();
File file = dfi.getStoreLocation();
File 转换 MultipartFile
import org.apache.commons.fileupload.FileItem; import org.apache.commons.fileupload.disk.DiskFileItem;
File paramsfile = new File("D:\test.txt");
FileItem fileItem = new DiskFileItem("file", Files.probeContentType(paramsfile.toPath()), false, paramsfile.getName(), (int) paramsfile.length(), paramsfile.getParentFile());
try (InputStream input = new FileInputStream(paramsfile); OutputStream os = fileItem.getOutputStream()) {
IOUtils.copy(input, os);
} catch (Exception e) {
throw new IllegalArgumentException("Invalid file: " + e, e);
}
MultipartFile multipartFiles = new CommonsMultipartFile(fileItem);