当前位置: 首页 > news >正文

java网络文件地址url的转换为MultipartFile文件流

废话不多说,直接上代码
一、异常捕捉类

public class BusinessException extends RuntimeException {public BusinessException(String msg){super(msg);}
}

二、转换类

package com.example.answer_system.utils;import org.springframework.mock.web.MockMultipartFile;
import org.springframework.web.multipart.MultipartFile;import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.URL;
import java.net.URLConnection;//文件转换工具
public class FileUtils {/*** 将网络文件转换为文件流* @param imageUrl* @return*/public static MultipartFile fileUrlConvertToMultipartFile(String imageUrl) {try {// 将在线图片地址转换为URL对象URL url = new URL(imageUrl);// 打开URL连接URLConnection connection = url.openConnection();// 转换为HttpURLConnection对象HttpURLConnection httpURLConnection = (HttpURLConnection) connection;// 获取输入流InputStream inputStream = httpURLConnection.getInputStream();// 读取输入流中的数据,并保存到字节数组中ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();byte[] buffer = new byte[1024];int bytesRead;while ((bytesRead = inputStream.read(buffer)) != -1) {byteArrayOutputStream.write(buffer, 0, bytesRead);}// 将字节数组转换为字节数组byte[] bytes = byteArrayOutputStream.toByteArray();// 创建ByteArrayInputStream对象,将字节数组传递给它ByteArrayInputStream byteArrayInputStream = new ByteArrayInputStream(bytes);// 创建MultipartFile对象,将ByteArrayInputStream对象作为构造函数的参数MultipartFile multipartFile = new MockMultipartFile("file", "filename.jpg", "image/jpg", byteArrayInputStream);return multipartFile;}catch (IOException ex){ex.printStackTrace();throw new BusinessException("附件无效");}}
}
http://www.lryc.cn/news/274729.html

相关文章:

  • JS实现/封装节流函数
  • ENVI 各版本安装指南
  • 60天零基础干翻C++————初识C++
  • 考研复试英语口语问答举例第二弹
  • MyBatis-Plus实现自定义SQL语句的分页查询
  • vue3 里的 ts 类型工具函数
  • 【SpringCloud】之远程消费(进阶使用)
  • 自然语言处理24-T5模型的介绍与训练过程,利用简单构造数据训练微调该模型,体验整个过程
  • CISSP 第5章 保护资产的安全
  • docker安装-在linux下的安装步骤
  • 在Uniapp中使用Echarts创建可视化图表
  • 基于python的leetcode算法介绍之动态规划
  • 通信原理期末复习——计算大题(一)
  • 【萤火虫系列教程】2/5-Adobe Firefly 文字​生成​图像
  • JDK 11:崭新特性解析
  • leetcode.在链表中插入最大公约数
  • 云原生学习系列之基础环境准备(单节点安装kubernetes)
  • 【数据结构】二叉树的概念及堆
  • 美年大健康黄伟:从选型到迁移,一个月升级核心数据库
  • OpenHarmony应用构建工具Hvigor的构建流程
  • ChatGPT在金融财务领域的10种应用方法
  • 全程云OA ajax.ashx SQL注入漏洞复现
  • VMware 安装 macOS虚拟机(附工具包)
  • Tomcat与Servlet是什么关系
  • C++11_右值引用
  • C#使用条件语句判断用户登录身份
  • 在VM下使用Composer完成快照方式的软件制作
  • YOLOv5改进 | Neck篇 | 利用Damo-YOLO的RepGFPN改进特征融合层
  • 设计模式——最全梳理,最好理解
  • 外包干了4个月,技术退步明显了...