Java 将File转换为MultipartFile类型
2024-08-29 02:00:33
首先转换时需要用到commons-fileupload-1.3.2.jar包,若项目中没有就先加入jar包,实现代码如下:
1、根据File创建FileItem
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.OutputStream; import org.apache.commons.fileupload.FileItem;
import org.apache.commons.fileupload.FileItemFactory;
import org.apache.commons.fileupload.disk.DiskFileItemFactory;
import org.springframework.web.multipart.MultipartFile;
import org.springframework.web.multipart.commons.CommonsMultipartFile; /*
创建FileItem
*/
private FileItem createFileItem(File file, String fieldName) {
FileItemFactory factory = new DiskFileItemFactory(16, null);
FileItem item = factory.createItem(fieldName, "text/plain", true, file.getName());
int bytesRead = 0;
byte[] buffer = new byte[8192];
try {
FileInputStream fis = new FileInputStream(file);
OutputStream os = item.getOutputStream();
while ((bytesRead = fis.read(buffer, 0, 8192)) != -1) {
os.write(buffer, 0, bytesRead);
}
os.close();
fis.close();
} catch (IOException e) {
e.printStackTrace();
}
return item;
}
2、通过FileItem对象可以轻松获得CommonsMultipartFile对象,转换成MultiPartFile对象即可使用。
MultipartFile mfile = new CommonsMultipartFile(fileItem);
最新文章
- 制作OS X 10.9 Mavericks 安装U盘
- 纪念逝去的岁月——C++实现一个栈(使用类模板)
- Leetcode: Number of Islands II &;&; Summary of Union Find
- .net中怎么使用CKEditor
- 一道简单的动态规划题目——House Robber
- silverlight圆球滚动
- C# 封装 System.Data.SQLite
- for语句之打印三角形问题
- JavaWeb程序连接SQLserver数据库
- zoj 3962 Seven Segment Display 数位dp
- [转]HTML5 script 标签的 crossorigin 属性到底有什么用?
- redis的使用与 django的redis的使用
- BZOJ 1143: [CTSC2008]祭祀river(最大独立集)
- CentOS7.5下MYSQL8.0.11
- hdu 3038(扩展并查集)
- php数组按值的大小排序
- Spring Cloud Eureka 实现服务注册与发现
- HT7A6312—— 离线开关电源小功率初级转换开关IC 记录总结
- docker-3-常用命令(下)
- 【洛谷P1083】[NOIP2012]借教室
热门文章
- Postgres 数据库字符集更改 ERROR: new encoding (UTF8) is incompatible
- log显示error时的堆栈信息理解和分析
- 大型项目开发: 隔离 (《大规模C++程序设计》书摘)
- HDU 3247 Resource Archiver (AC自己主动机 + BFS + 状态压缩DP)
- zoj 1648 Circuit Board
- Sqlite3插入大量数据性能优化
- 关于oracle 11g导出数据时 报 ORA 1455错误的处理
- webService总结(一)——使用CXF公布和调用webService(不使用Spring)
- luogu3157 动态逆序对
- 软件-版本控制:VCS(版本控制系统)