【问题标题】:How to receive 2 binary files and JSON in Jersey jax-rs?如何在 Jersey jax-rs 中接收 2 个二进制文件和 JSON?
【发布时间】:2015-12-19 04:44:12
【问题描述】:

我需要构建一个可以接收 2 个二进制文件(每个约 100k)和一些元数据的服务,最好是 json。

found this,但它似乎只为其中一个部件提供了一个 InputStream。但我需要两个.. 那该怎么办?

【问题讨论】:

  • 只需添加另一个具有不同零件名称的参数。有什么问题?你试过这个吗?
  • 是的,这行得通。现在已经很明显了。如果您想添加答案,我会将其标记为已接受。
  • 看来你忘记接受peeskillet的回答了;)

标签: java rest jersey jax-rs


【解决方案1】:

你有几个选择

  1. 只需添加另一个带有不同部分注释的参数

    @POST
    @Consumes("multipart/form-data")
    public Response post(@FormDataParam("file1") InputStream file1,
                         @FormDaraParam("file2") InputStream file2) {
    
    }
    
  2. 零件可以有相同的零件名称,所以你可以这样做

    @POST
    @Consumes("multipart/form-data")
    public Response post(@FormDataParam("file") List<FormDataBodyPart> files) {
        for (FormDataBodyPart file: files) {
            FormDataContentDisposition fdcd = file.getFormDataContentDisposition();
            String fileName = fdcd = getFileName();
            InputStream is = file.getValueAs(InputStream.class);
        }
    }
    
  3. 你可以自己遍历整个多部分体

    @POST
    @Consumes("multipart/form-data")
    public Response post(FormDataMultiPart mulitPart) {
        Map<String, List<FormDataBodyPart>> fields = multiPart.getFields();
    }
    

另请参阅:

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-02-14
    • 2016-04-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多