1. package cn.com.utils;
  2.  
  3. import org.apache.commons.fileupload.FileItem;
  4. import org.apache.commons.fileupload.disk.DiskFileItemFactory;
  5. import org.springframework.util.FileCopyUtils;
  6. import org.springframework.web.multipart.MultipartFile;
  7. import org.springframework.web.multipart.commons.CommonsMultipartFile;
  8.  
  9. import javax.activation.MimetypesFileTypeMap;
  10. import java.io.ByteArrayInputStream;
  11. import java.io.File;
  12. import java.io.InputStream;
  13. import java.io.OutputStream;
  14.  
  15. public class FileToMultipartFileUtil {
  16.  
  17. public static MultipartFile toMultipartFile(String fieldName, File file) throws Exception {
  18. DiskFileItemFactory diskFileItemFactory = new DiskFileItemFactory();
  19. String contentType = new MimetypesFileTypeMap().getContentType(file);
  20. FileItem fileItem = diskFileItemFactory.createItem(fieldName, contentType, false, file.getName());
  21. try (
  22. InputStream inputStream = new ByteArrayInputStream(FileCopyUtils.copyToByteArray(file));
  23. OutputStream outputStream = fileItem.getOutputStream()
  24. ) {
  25. FileCopyUtils.copy(inputStream, outputStream);
  26. } catch (Exception e) {
  27. throw e;
  28. }
  29. MultipartFile multipartFile = new CommonsMultipartFile(fileItem);
  30. return multipartFile;
  31. }
  32.  
  33. public static MultipartFile toMultipartFile(String fieldName, String fileName, byte[] fileByteArray) throws Exception {
  34. DiskFileItemFactory diskFileItemFactory = new DiskFileItemFactory();
  35. String contentType = new MimetypesFileTypeMap().getContentType(fileName);
  36. FileItem fileItem = diskFileItemFactory.createItem(fieldName, contentType, false, fileName);
  37. try (
  38. InputStream inputStream = new ByteArrayInputStream(fileByteArray);
  39. OutputStream outputStream = fileItem.getOutputStream()
  40. ) {
  41. FileCopyUtils.copy(inputStream, outputStream);
  42. } catch (Exception e) {
  43. throw e;
  44. }
  45. MultipartFile multipartFile = new CommonsMultipartFile(fileItem);
  46. return multipartFile;
  47. }
  48.  
  49. }

File转换为MultipartFile工具类的更多相关文章

  1. Java 将File转换为MultipartFile类型

    首先转换时需要用到commons-fileupload-1.3.2.jar包,若项目中没有就先加入jar包,实现代码如下: 1.根据File创建FileItem import java.io.File ...

  2. Android开发之dp转像素,像素转换为dp工具类,详细代码,带有源文件下载地址。

    import android.content.Context; /** * @author 官网:http://blog.csdn.net/qq_21376985 * * David编写: 微博:ht ...

  3. [转]Java常用工具类集合

    转自:http://blog.csdn.net/justdb/article/details/8653166 数据库连接工具类——仅仅获得连接对象 ConnDB.java package com.ut ...

  4. 文件类型工具类:FileTypeUtil

    个人学习,仅供参考! package com.example.administrator.filemanager.utils;import java.io.File;/** * 文件类型工具类 * * ...

  5. 目录处理工具类 DealWithDir.java

    package com.util; import java.io.File; /** * 目录处理工具类 * */ public class DealWithDir { /** * 新建目录 */ p ...

  6. 项目经验分享——Java常用工具类集合 转

    http://blog.csdn.net/xyw591238/article/details/51678525 写在前面     本文涉及的工具类部分是自己编写,另一部分是在项目里收集的.工具类涉及数 ...

  7. JaxbUtil转json转XML工具类

    json转换为XML工具类 package com.cxf.value; import org.springframework.util.StringUtils; import javax.xml.b ...

  8. Java常用工具类之删除文件

    package com.wazn.learn.util; import java.io.File; /** * 删除文件工具类 * @author yangzhenyu * */ public cla ...

  9. 二、工具类ImageUtil——图片处理

    这个工具类完成的工作如下: 1.第一个static方法,完成图片格式的转换.统一转换成.jpg格式. package util; import java.awt.Toolkit; import jav ...

随机推荐

  1. WebServer Project-01-反射

    简介 上网浏览网页,离不开服务器,客户请求页面,服务器响应页面,响应的内容是根据每个web请求来产生动态内容的,其内部即启动多个线程来产生不同内容.这种请求响应的交互,都是基于HTTP协议的. 当然现 ...

  2. 页面上有3个输入框:分别为max,min,num;三个按钮:分别为生成,排序,去重;在输入框输入三个数字后,先点击生成按钮,生成一个数组长度为num,值为max到min之间的随机整数点击排序,对当前数组进行排序,点击去重,对当前数组进行去重。 每次点击之后使结果显示在控制台

    <!DOCTYPE html> <html> <head> <!-- 页面上有3个输入框:分别为max,min,num:三个按钮:分别为生成,排序,去重: 在 ...

  3. Android开发 MediaPlayer入门_播放本地视频

    前言 MediaPlayer,可以播放视频/音频,并且它支持本地和网络文件的播放.本片博客作为入门教程,先以最通俗的方式解释播放文件本地视频.(如果你嫌MediaPlayer还是太麻烦可以试试选择Vi ...

  4. jq-demo-点击改变图片

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  5. CGLIB 详解

    依赖 <dependency> <groupId>cglib</groupId> <artifactId>cglib</artifactId> ...

  6. Android SDK 环境变量配置

    ANDROID_HOME = D:\Package\android-sdk-windows 在path 中加入 %ANDROID_HOME%\tools 和 %ANDROID_HOME%\platfo ...

  7. Zookeeper_Paxos算法

    Paxos算法 算法简介 Paxos算法是莱斯利-兰伯特在1990年提出的一种基于消息传递的.具有容错性的一致性算法,Google Chubb(分布式锁服务)的作者Mike Burrwos说过,世上只 ...

  8. delphi透明panel组件或者制作方法

    //透明Panel控件 unit TranPanel; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, ...

  9. BZOJ 1415: [Noi2005]聪聪和可可(记忆化搜索+期望)

    传送门 解题思路 还是比较简答的一道题.首先\(bfs\)把每个点到其他点的最短路求出来,然后再记忆化搜索.记搜的时候猫的走法是确定的,搜一下老鼠走法就行了. 代码 #include<iostr ...

  10. NOIp2018集训test-9-5(am)

    Problem A. maze 递归处理,题解写得真简单. 我大概这辈子也写不出来这种东西吧. Problem B. count 容易发现合法的数中一定有且仅有两个数加起来等于10,其他数两两配对加起 ...