java - 如何在其余服务中接收以八位字节流类型发送的图像?

标签 java image file inputstream resteasy

我有一个发送多部分表单数据的休息客户端。我将图像作为“application/octet-stream”发送。图像类型为 JPEG。

我应该如何在 REST 服务中正确接收此信息?

目前我将其作为InputStream接收。 我将此输入流转换为文件,但无法打开它。尝试打开它时显示 jpeg 错误

输入流到文件转换逻辑

File image=File.createTempFile("image", ".JPEG");
FileUtils.copyInputStreamToFile(inputStream, image);

为了清楚起见,我将分享其余的客户端 stub 和其余的服务实现。

剩余客户端 stub

public class ImageTest 
{

    public static void main(String[] args) throws IOException 
    {
        ResteasyClient client = new ResteasyClientBuilder().build();
        ResteasyWebTarget target = client.target("http://localhost:8080/rest/AS/uploadreceipt");

        MultipartFormDataOutput formData = new MultipartFormDataOutput();

        Map<String, Object> json = new HashMap<>();

        json.put("loyaltyId", "23");

        formData.addFormData("json", json, MediaType.APPLICATION_JSON_TYPE);

        FileInputStream fis = new FileInputStream(new File("/root/Downloads/index.jpeg"));

    formData.addFormData("image", fis, MediaType.APPLICATION_OCTET_STREAM_TYPE);

        Entity<MultipartFormDataOutput> entity = Entity.entity(formData, MediaType.MULTIPART_FORM_DATA);

        Response response = target.request().post(entity);


    }

休息服务处理

Map<String, Object> json = receiptUploadRequest.getFormDataPart("json", new GenericType<Map<String, Object>>() {});

InputStream image = receiptUploadRequest.getFormDataPart("image", new GenericType<InputStream>() {});

有什么我需要考虑的东西,比如标题等..因为它从其余客户端作为八位字节流发送。有什么东西阻止创建文件..任何人都可以帮我转换从发送的图像将客户端 stub 保存到文件....

最佳答案

我将输入流对象设置为相应的 pojo 字段。这导致输入流损坏。 因此,在设置为 pojo 字段之前,我将输入流转换为文件。现在创建的文件是完美的。

关于java - 如何在其余服务中接收以八位字节流类型发送的图像?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34071762/

相关文章:

php - 如何在子文件夹页面中显示图像(页面在 PHP 中)

html - img srcset - 忽略像素密度

ruby-on-rails - ROR- 使用 Paperclip 分步多幅图像

java - OpenJDK 14.0.1 给出 "the switch expression does not cover all possible input values"

java - 通过 Java 控制台编辑给定的字符串

c++ - ifstream 不占用内存的最佳读取方式

python - 寻找简单的Python公式来组合两个文本文件

php - 检测文件是否是PHP中没有mime类型的音频文件

java - 数组适配器() : no suitable constructor found

java - 如何在编辑器关闭后删除 IMarkers(或者为什么 IMarker.TRANSIENT 属性不起作用)?