当前位置:网站首页>Conversion between commonsmultipartfile and file
Conversion between commonsmultipartfile and file
2022-07-07 23:16:00 【codepig16】
One 、 CommonsMultipartFile To File( Curve of national salvation )
Here is the way to save the country with curves : First use CommonsMultipartFile Of getInputStream() Method to get a InputStream Object of type , then InputStream Type into File
// take InputStream Type into File type
private static void inputStreamToFile(InputStream ins, File file) {
// Convert the output stream into a file
FileOutputStream os = null;
try {
os = new FileOutputStream(file);
int bytesRead = 0;
byte[] buffer = new byte[1024];
while((bytesRead = ins.read(buffer)) != -1) {
os.write(buffer, 0, bytesRead);
}
}catch(Exception e) {
throw new RuntimeException(" call inputStreamToFile Cause abnormal :"+e.getMessage());
}finally {
try {
if(os != null) {
os.close();
}
if(ins != null) {
ins.close();
}
}catch(IOException e) {
throw new RuntimeException("inputStreamToFile close io An exception occurred while :"+e.getMessage());
}
}
}
// Use inputStreamToFile Method
// When creating a file , Add any empty path , Create the file , You can delete it later
File xxFile = new File(" A non repeating path ");
try {
xxFile.createNewFile();
} catch (IOException e) {
// Handling exception information
}
try {
inputStreamToFile(xxCommonsMultipartFile.getInputStream(), xxFile);
} catch (IOException e) {
// Handling exception information
}
//xxFile Is the transformed File file
Two 、File To CommonsMultipartFile
// hold File Turn into CommonsMultipartFile
public FileItem createFileItem(File file, String fieldName) {
//DiskFileItemFactory(): Construct a configured instance of this class
// The first parameter threshold( threshold ): In bytes . Below this threshold item Will be stored in memory , Above this threshold item Will be stored as a file
// The second parameter data repository: The directory where the files will be created . Used to configure when creating file items , The temporary folder used when the file item is greater than the threshold , The system default temporary file path is adopted by default
FileItemFactory factory = new DiskFileItemFactory(16, null);
//fieldName: The name of the form field ; The second parameter ContentType; The third parameter isFormField; The fourth one : file name
FileItem item = factory.createItem(fieldName, "text/plain", true, file.getName());
int bytesRead = 0;
byte[] buffer = new byte[8192];
FileInputStream fis = null;
OutputStream os = null;
try {
fis = new FileInputStream(file);
os = item.getOutputStream();
while((bytesRead = fis.read(buffer, 0, 8192)) != -1) {
os.write(buffer, 0, bytesRead);// from buffer Get data from and write
}
} catch(IOException e) {
e.printStackTrace();
} finally {
try {
if(os != null) {
os.close();
}
if(fis != null) {
fis.close();
}
} catch (IOException e) {
e.printStackTrace();
}
}
return item;
}
// Use
FileItem fileItem = createFileItem(xxFile, " Form field name ");
CommonsMultipartFile xxCMF = new CommonsMultipartFile(fileItem);
//xxCMF Is the transformed CommonsMultipartFile file
边栏推荐
- Develop those things: go plus c.free to free memory, and what are the reasons for compilation errors?
- 2022 words for yourself
- 系统架构设计师备考经验分享:论文出题方向
- Anta DTC | Anta transformation, building a growth flywheel that is not only FILA
- 定位到最底部[通俗易懂]
- Gee (III): calculate the correlation coefficient between two bands and the corresponding p value
- Network security - install CentOS
- The wonderful relationship between message queue and express cabinet
- Bea-3xxxxx error code
- 嵌入式音频开发中的两种曲线
猜你喜欢

Lecture 30 linear algebra Lecture 5 eigenvalues and eigenvectors

iNFTnews | NFT技术的广泛应用及其存在的问题

Cascade-LSTM: A Tree-Structured Neural Classifier for Detecting Misinformation Cascades-KDD2020

leetcode-520. 检测大写字母-js

Comparison of various development methods of applets - cross end? Low code? Native? Or cloud development?

U盘拷贝东西时,报错卷错误,请运行chkdsk

Introduction to redis and jedis and redis things

Binary tree

UE4_UE5结合罗技手柄(F710)使用记录

ArcGIS:矢量要素相同字段属性融合的两种方法
随机推荐
Why does the market need low code?
云原生数据仓库AnalyticDB MySQL版用户手册
Txt file virus
648. 单词替换
Unity dynamically merges mesh textures
Circumvention Technology: Registry
Brush question 3
微信论坛交流小程序系统毕业设计毕设(7)中期检查报告
消息队列与快递柜之间妙不可言的关系
PMP project management exam pass Formula-1
Brush question 5
二叉树(Binary Tree)
Redhat下安装fedora
Binary tree
Wechat forum exchange applet system graduation design (5) assignment
Anta DTC | Anta transformation, building a growth flywheel that is not only FILA
JMeter interface automated test read case, execute and write back result
turbo intruder常用脚本
Unity3D学习笔记5——创建子Mesh
Comparison of various development methods of applets - cross end? Low code? Native? Or cloud development?