File转换为MultipartFile工具类
2024-09-28 21:49:48
package cn.com.utils; import org.apache.commons.fileupload.FileItem;
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 javax.activation.MimetypesFileTypeMap;
import java.io.ByteArrayInputStream;
import java.io.File;
import java.io.InputStream;
import java.io.OutputStream; public class FileToMultipartFileUtil { public static MultipartFile toMultipartFile(String fieldName, File file) throws Exception {
DiskFileItemFactory diskFileItemFactory = new DiskFileItemFactory();
String contentType = new MimetypesFileTypeMap().getContentType(file);
FileItem fileItem = diskFileItemFactory.createItem(fieldName, contentType, false, file.getName());
try (
InputStream inputStream = new ByteArrayInputStream(FileCopyUtils.copyToByteArray(file));
OutputStream outputStream = fileItem.getOutputStream()
) {
FileCopyUtils.copy(inputStream, outputStream);
} catch (Exception e) {
throw e;
}
MultipartFile multipartFile = new CommonsMultipartFile(fileItem);
return multipartFile;
} public static MultipartFile toMultipartFile(String fieldName, String fileName, byte[] fileByteArray) throws Exception {
DiskFileItemFactory diskFileItemFactory = new DiskFileItemFactory();
String contentType = new MimetypesFileTypeMap().getContentType(fileName);
FileItem fileItem = diskFileItemFactory.createItem(fieldName, contentType, false, fileName);
try (
InputStream inputStream = new ByteArrayInputStream(fileByteArray);
OutputStream outputStream = fileItem.getOutputStream()
) {
FileCopyUtils.copy(inputStream, outputStream);
} catch (Exception e) {
throw e;
}
MultipartFile multipartFile = new CommonsMultipartFile(fileItem);
return multipartFile;
} }
最新文章
- Oracle在存储过程中如何返回结果集
- AngularJS身份验证:Cookies VS Tokens
- Elasticsearch学习之入门
- SQLSERVER的NULL
- Opencv显示图片并监听鼠标坐标
- Scala模式匹配语言,java的替代者
- Raw-OS互斥的源代码分析的量的Mutex
- UVA662- Fast Food
- MQ通道搭建以及连通性检查
- linux系统下安装配置解压版的MySQL数据库
- C 语言 符合运算符
- dom4j操作xml的demo
- POJ 1426 Find The Multiple(寻找倍数)
- opencv删除轮廓
- Mysql之数据库操作
- JS图形化插件利器组件系列 —— Gojs组件
- C++编程基础练习
- Django(图书管理系统1)
- luogu P2066 机器分配[背包dp+方案输出]
- [LeetCode]Delete and Earn题解(动态规划)