文件流转MultipartFile

49 篇文章 2 订阅
36 篇文章 1 订阅

文件流转MultipartFile

MultipartFile转文件流很简单,InputStream inputStream = file.getInputStream();

文件流转MultipartFile需要借助MultipartFile的子类

方式一CommonsMultipartFile

依赖

<dependency>
   <groupId>commons-fileupload</groupId>
   <artifactId>commons-fileupload</artifactId>
   <version>1.4</version>
</dependency>

代码

try {
    // 文件输出流
    ByteArrayOutputStream bos = new ByteArrayOutputStream();
    byte[] bytes = bos.toByteArray();     
    
    FileItemFactory factory = new DiskFileItemFactory(16, null);
    // file是文件名,JPEG是文件后缀,这里是图片
    FileItem item = factory.createItem("file", "text/plain", true, "JPEG");
    
    // 这里InputStream inputStream = item.getInputStream();输入流转MultipartFile也Ok
    OutputStream os = item.getOutputStream();
    os.write(bytes);
    bos.flush();    
    os.flush();
    
    // MultipartFile
    MultipartFile file = new CommonsMultipartFile(item);
} catch (Exception e) {
    log.error("异常信息:", e);
}

方式二MockMultipartFile

依赖

<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-test</artifactId>
    <version>5.2.9.RELEASE</version>
</dependency>

代码

try {
    File file = new File(path);
    InputStream inputStream = new FileInputStream(file);
    
    // MultipartFile
    MultipartFile file = new MockMultipartFile("新文件名", "文件原始名", "text/plain", inputStream);
    
} catch (Exception e) {
    log.error("异常信息:", e);
}
  • 3
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
要将 base64 文件流转换为 MultipartFile 对象,你可以按照以下步骤进行操作: 1. 导入相关的包: ```java import org.springframework.util.Base64Utils; import org.springframework.web.multipart.MultipartFile; import org.springframework.web.multipart.commons.CommonsMultipartFile; ``` 请确保你的项目中已经包含了相应的依赖。 2. 创建一个方法来将 base64 文件流转换为 MultipartFile 对象: ```java public MultipartFile base64ToMultipart(String base64) { try { // 从 base64 字符串解码为字节数组 byte[] bytes = Base64Utils.decodeFromString(base64); // 创建一个临时文件对象 String tempFileName = "temp.jpg"; // 临时文件名,根据实际情况修改扩展名 File tempFile = new File(tempFileName); // 将字节数组写入临时文件 FileUtils.writeByteArrayToFile(tempFile, bytes); // 创建一个 MultipartFile 对象 CommonsMultipartFile multipartFile = new CommonsMultipartFile(tempFile); // 返回 MultipartFile 对象 return multipartFile; } catch (IOException e) { e.printStackTrace(); } return null; } ``` 请注意,上述代码使用了 CommonsMultipartFile 类,这是 Spring 框架中的一个实现类。如果你使用的是 Spring Boot 2.x 版本,Spring 已经切换到了 StandardServletMultipartResolver,默认使用 StandardMultipartHttpServletRequest 对象,你可以替换上述代码中的 `CommonsMultipartFile` 类为 `StandardMultipartHttpServletRequest` 类。 3. 调用这个方法并传入 base64 文件流进行换: ```java String base64File = "..." // 你的 base64 文件MultipartFile multipartFile = base64ToMultipart(base64File); ``` 通过上述步骤,你就可以将 base64 文件流转换为 MultipartFile 对象了。请注意,在使用完 MultipartFile 对象后,记得删除临时文件
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

wzq_55552

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值