在 Java 中,可以通过 ByteArrayOutputStream 来实现 OutputStream 转 MultipartFile。

具体步骤如下:

  1. 创建一个 ByteArrayOutputStream 对象,用于接收输出流的数据。

  2. 将要转换的 OutputStream 对象写入 ByteArrayOutputStream 中。

  3. 创建一个 MultipartFile 对象,将 ByteArrayOutputStream 中的数据转换成字节数组,并设置 MultipartFile 的文件名和文件类型。

示例代码如下:

public static MultipartFile outputStreamToMultipartFile(OutputStream outputStream, String fileName, String fileType) throws IOException {
    ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
    byte[] bytes;

    // 读取输出流中的数据并写入 ByteArrayOutputStream 中
    int len;
    byte[] buffer = new byte[1024];
    while ((len = outputStream.read(buffer)) > -1) {
        byteArrayOutputStream.write(buffer, 0, len);
    }
    byteArrayOutputStream.flush();

    // 将 ByteArrayOutputStream 中的数据转换成字节数组
    bytes = byteArrayOutputStream.toByteArray();

    // 创建 MultipartFile 对象并设置文件名和文件类型
    return new MockMultipartFile(fileName, fileName, fileType, bytes);
}

其中,MockMultipartFile 是 Spring 框架提供的一个 MultipartFile 的实现类。如果你没有使用 Spring 框架,可以自行实现 MultipartFile 接口。

Java 实现 OutputStream 转 MultipartFile 详解

原文地址: https://www.cveoy.top/t/topic/oYJ1 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录