在 Java 中,可以使用MultipartFile类来表示文件,并且可以使用ByteArrayResource类来将二进制数据流转化为MultipartFile类型。

以下是将第三方接口返回的二进制数据流文件转化为MultipartFile类型的示例代码:

import org.springframework.core.io.ByteArrayResource;
import org.springframework.web.multipart.MultipartFile;
import org.springframework.web.multipart.commons.CommonsMultipartFile;

import java.io.IOException;
import java.io.InputStream;

public class FileConverter {
    public MultipartFile convertToMultipartFile(InputStream inputStream, String originalFileName) throws IOException {
        byte[] bytes = readBytesFromInputStream(inputStream);
        ByteArrayResource resource = new ByteArrayResource(bytes);

        // 使用MultipartFile转化器将ByteArrayResource转化为MultipartFile类型
        return new CommonsMultipartFile(resource) {
            @Override
            public String getOriginalFilename() {
                return originalFileName;
            }
        };
    }

    private byte[] readBytesFromInputStream(InputStream inputStream) throws IOException {
        byte[] buffer = new byte[1024];
        int bytesRead;
        ByteArrayOutputStream output = new ByteArrayOutputStream();
        while ((bytesRead = inputStream.read(buffer)) != -1) {
            output.write(buffer, 0, bytesRead);
        }
        return output.toByteArray();
    }
}

在上述代码中,convertToMultipartFile方法接收一个InputStream类型的参数和一个originalFileName参数,将二进制数据流转化为MultipartFile类型,并设置originalFileName作为文件的原始文件名。最后返回转化后的MultipartFile对象。

使用示例代码:

// 假设第三方接口返回的二进制数据流文件是一个InputStream对象,originalFileName是文件的原始文件名
InputStream inputStream = // 获取第三方接口返回的二进制数据流文件
String originalFileName = // 获取文件的原始文件名

FileConverter fileConverter = new FileConverter();
MultipartFile multipartFile = fileConverter.convertToMultipartFile(inputStream, originalFileName);

通过以上代码,你就可以将第三方接口返回的二进制数据流文件转化为MultipartFile类型了。

Java 将第三方接口二进制数据流转化为 MultipartFile

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

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