import com.ilsmp.base.util.StringUtil;
import org.springframework.mock.web.MockMultipartFile;
import org.springframework.web.multipart.MultipartFile;
import java.io.*;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.util.Base64;
public class FileChangeTool {
/**
* base64字符串 转 MultipartFile
*/
public static MultipartFile base64ToMultipartFile(String base64, String filename,String originalFilename) throws IOException {
if(!StringUtil.isEmpty(filename)){
filename = "file";
}
if(!StringUtil.isEmpty(originalFilename)){
originalFilename = "file";
}
String[] parts = base64.split(",");
String contentType = parts[0].split(";")[0].split(":")[1];
byte[] bytes = Base64.getDecoder().decode(parts[1]);
return new MockMultipartFile(filename, originalFilename, contentType, bytes);
}
/**
* MultipartFile 转 File -- 1
*/
public File convertMultipartFileToFile(MultipartFile file) throws IOException {
File convFile = null;
if (file.equals("") || file.getSize() <= 0) {
System.out.println("File is empty or its size is zero, please check!");
} else {
InputStream inputStream = file.getInputStream();
convFile = new File(file.getOriginalFilename());
FileOutputStream fos = new FileOutputStream(convFile);
int bytesRead = 0;
byte[] buffer = new byte[8192];
while ((bytesRead = inputStream.read(buffer)) != -1) {
fos.write(buffer, 0, bytesRead);
}
fos.close();
inputStream.close();
}
return convFile;
}
/**
* MultipartFile 转 File -- 2
*/
public static File cconvertMultipartFileToFile(MultipartFile multipartFile) throws IOException {
// 获取文件名
String fileName = multipartFile.getOriginalFilename();
// 创建临时文件
Path path = Paths.get(fileName);
File tempFile = path.toFile();
// 将MultipartFile内容写入临时文件
multipartFile.transferTo(tempFile);
return tempFile;
}
/**
* File 转 MultipartFile
*/
public static MultipartFile convertFileToMultipartFile(File file) throws IOException {
FileInputStream input = new FileInputStream(file);
MultipartFile multipartFile = new MockMultipartFile(
"file",
file.getName(),
"text/plain",
input
);
return multipartFile;
}
}
Java-File转换工具类(base64字符串/MultipartFile)
最新推荐文章于 2024-08-04 17:56:28 发布
本文介绍了Java工具类FileChangeTool,包含base64字符串转MultipartFile的方法,以及MultipartFile与File之间的转换,如convertMultipartFileToFile和convertFileToMultipartFile等,有助于处理文件上传和下载操作。
摘要由CSDN通过智能技术生成