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;
} }

最新文章

  1. Oracle在存储过程中如何返回结果集
  2. AngularJS身份验证:Cookies VS Tokens
  3. Elasticsearch学习之入门
  4. SQLSERVER的NULL
  5. Opencv显示图片并监听鼠标坐标
  6. Scala模式匹配语言,java的替代者
  7. Raw-OS互斥的源代码分析的量的Mutex
  8. UVA662- Fast Food
  9. MQ通道搭建以及连通性检查
  10. linux系统下安装配置解压版的MySQL数据库
  11. C 语言 符合运算符
  12. dom4j操作xml的demo
  13. POJ 1426 Find The Multiple(寻找倍数)
  14. opencv删除轮廓
  15. Mysql之数据库操作
  16. JS图形化插件利器组件系列 —— Gojs组件
  17. C++编程基础练习
  18. Django(图书管理系统1)
  19. luogu P2066 机器分配[背包dp+方案输出]
  20. [LeetCode]Delete and Earn题解(动态规划)

热门文章

  1. 如何让contenteditable元素只能输入纯文本
  2. layui 封装自定义模块
  3. Linux网络编程 了解
  4. redis 分析rdb中key
  5. boost 实现读写锁
  6. 初识webSocket及其使用
  7. 发现一个新的远程软件 gotohttp
  8. wpf tabcontrol内的datagrid的selectionChanged事件向往传递问题
  9. 解析Spring MVC上传文件
  10. JZOJ5146:港湾