package com.czc.develop_demo.utils;
import cn.hutool.http.ContentType;
import org.apache.commons.fileupload.disk.DiskFileItem;
import org.apache.commons.fileupload.disk.DiskFileItemFactory;
import org.springframework.util.FileCopyUtils;
import org.springframework.web.multipart.MultipartFile;
import org.springframework.web.multipart.commons.CommonsMultipartFile;
import java.io.*;
import java.nio.file.Files;
import java.nio.file.Paths;
/*
文件类型互转工具类
*/
public class FileTypeCoverUtil {
/*
MultipartFile转换为File
*/
public static File MultipartFileToFile(MultipartFile multipartFile) {
//创建临时文件
File temporaryFile = new File("/" + multipartFile.getOriginalFilename());
try {
if (!temporaryFile.exists()) {
temporaryFile.createNewFile();
}
FileCopyUtils.copy(multipartFile.getBytes(), temporaryFile);
} catch (IOException e) {
throw new RuntimeException(e);
} finally {
//删除临时文件
temporaryFile.delete();
}
return temporaryFile;
}
/*
File转为MultipartFile
*/
public static MultipartFile FileToMultipartFile(File file) {
MultipartFile multipartFile;
try {
DiskFileItem fileItem=(DiskFileItem) new DiskFileItemFactory()
.createItem("file", ContentType.MULTIPART.getValue(), true, file.getName());
Files.copy(Paths.get(file.getAbsolutePath()),fileItem.getOutputStream());
multipartFile=new CommonsMultipartFile(fileItem);
} catch (Exception e) {
throw new RuntimeException(e);
}
return multipartFile;
}
}
注意使用的是Commons.fileupload下的DiskFileItem,不是tomcat下的