互联网技术社区|福缘小草|程序员技术博客
🏠首页
  • 开发必备
  • Java
  • Spring Boot
  • MyBatis
  • C#
  • 架构
  • 算法
  • Vue
  • JavaScript
  • HTML
  • MySQL
  • Oracle
  • SQL Server
  • PostgreSQL
  • Redis
  • MongoDB
  • ElasticSearch
  • influxDB
  • ClickHouse
  • Linux
  • Docker
  • K8s
  • 消息队列
  • Shell
  • Git
  • Nginx
  • IDEA
  • Windows
  • 安卓
  • 在线工具
  • 实用技巧
  • 开源项目
  • 好文
  • 资源
  • 网站
  • 导航
💖关于
  • 分类
  • 标签
  • 归档

baohua.yin

不会填坑的程序员不是一个好程序猿!
🏠首页
  • 开发必备
  • Java
  • Spring Boot
  • MyBatis
  • C#
  • 架构
  • 算法
  • Vue
  • JavaScript
  • HTML
  • MySQL
  • Oracle
  • SQL Server
  • PostgreSQL
  • Redis
  • MongoDB
  • ElasticSearch
  • influxDB
  • ClickHouse
  • Linux
  • Docker
  • K8s
  • 消息队列
  • Shell
  • Git
  • Nginx
  • IDEA
  • Windows
  • 安卓
  • 在线工具
  • 实用技巧
  • 开源项目
  • 好文
  • 资源
  • 网站
  • 导航
💖关于
  • 分类
  • 标签
  • 归档
  • 提取和删除照片图片 Exif GPS 等隐私信息
  • Java调用CMD(Dos)命令
  • MultipartFile与File互转&inputStream转File
  • Alibaba Java 技术图谱
  • Java传给前端的Long类型字段要转为String类型
  • Java根据出生日期获取年龄
  • Java利用Hutool对身份证操作
  • java测试造数据神器JavaFaker
  • Sonar修复笔记
  • Java
baohua.yin
2023-03-03

MultipartFile与File互转&inputStream转File

很多时候,在对文件上传和下载的时候,内置的MultipartFile文件类型有时候并不符合我们的操作要求,需要对MultipartFile文件类型进行转换。


/**
 * MultipartFile 转 File
 * @param file
 * @throws Exception
 */
public static void multipartFileToFile( @RequestParam MultipartFile file ) throws Exception {

    File toFile = null;
    if(file.equals("")||file.getSize()<=0){
        file = null;
    }else {
            InputStream ins = null;
            ins = file.getInputStream();
            toFile = new File(file.getOriginalFilename());
            inputStreamToFile(ins, toFile);
            ins.close();
    }

}

/**
 * File 转 MultipartFile
 * @param file
 * @throws Exception
 */
public static void fileToMultipartFile( File file ) throws Exception {

    FileInputStream fileInput = new FileInputStream(file);
    MultipartFile toMultipartFile = new MockMultipartFile("file",file.getName(),"text/plain", IOUtils.toByteArray(fileInput));
    toMultipartFile.getInputStream();

}

/**
 * InputStream 转 File
 * @param ins
 * @param file
 */
public static void inputStreamToFile(InputStream ins, File file) {
    try {
        OutputStream os = new FileOutputStream(file);
        int bytesRead = 0;
        byte[] buffer = new byte[8192];
        while ((bytesRead = ins.read(buffer, 0, 8192)) != -1) {
            os.write(buffer, 0, bytesRead);
        }
        os.close();
        ins.close();
    } catch (Exception e) {
        e.printStackTrace();
    }
}

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
上次更新: 2023/03/03, 18:36:42
Java调用CMD(Dos)命令
Alibaba Java 技术图谱

← Java调用CMD(Dos)命令 Alibaba Java 技术图谱→

最近更新
01
如何进行科学上网
05-31
02
分享(一个外地女孩,死在了我出租的公寓)
08-18
03
温家宝总理—《我的母亲》
06-13
更多文章>
Copyright © 2019-2025 1024fuli.com | 本站所有资源收集整理于网络,如有侵权请发邮件联系删除。| 粤ICP备18082936号-1 | 由又拍云提供CDN支持
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式