如何在Jersey jax-rs中接收2个二进制文件和JSON?

时间:2015-12-19 04:44:13

标签: java rest jersey jax-rs

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

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

1 个答案:

答案 0 :(得分: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();
    }
    
  4. 另见: