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

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. 编写一个简单的内核驱动模块时报错 “/lib/modules/3.13.0-32-generic/bulid: 没有那个文件或目录。 停止。”

    编写一个简单的内核驱动模块 static int hello_init() { printk(“hello,I am in kernel now\n”); ; } void addfunc(int a ...

  2. redis String 相关命令

  3. How to enter special characters like “&” in oracle database? [duplicate]

    SQL> set define off; or use Try 'Java_22 '||'&'||' Oracle_14'

  4. redis设置自动启动

    按照如下操作即可(可以自定义目录) mkdir /redis cd /redis wget http://download.redis.io/releases/redis-4.0.1.tar.gz t ...

  5. Linux下Qt调用共享库文件.so

    修改已有的pro文件,添加如下几句: INCLUDEPATH += /home/ubuntu/camera/camera/LIBS += -L/home/ubuntu/camera/camera -l ...

  6. 试探回溯法(backtracking)

    一.八皇后问题 国际象棋中皇后的势力范围覆盖其所在的水平线.垂直线以及两条对角线.现考查如下问题:在n*n的棋盘上放置n个皇后,如何使得她们彼此互不攻击,此时称她们构成一个可行的棋局.对于任何整数n ...

  7. 基本TCP Sockets编程

    一.socket 函数 #include <sys/socket.h> int socket (int family, int type, int protocol); Returns: ...

  8. 解决 AUTH` failed: ERR Client sent AUTH, but no password is set [tcp://127.0.0.1:6379]

    页面报错: ConnectionException In AbstractConnection.php line 155 AUTH` failed: ERR Client sent AUTH, but ...

  9. java zxing 生成条形码和二维吗

    依赖 <dependency> <groupId>com.google.zxing</groupId> <artifactId>core</art ...

  10. Superset安装出错 sqlalchemy.exc.InvalidRequestError: Can't determine which FROM clause to join from, ...

    $ superset db upgrade ... Traceback (most recent call last): File "/home/jhadmin/.pyenv/version ...