使用带有jersey jaxrs-ri-2.01的HTTP PUT上传二进制数据

时间:2015-11-27 11:09:51

标签: upload jersey jax-rs binaryfiles put

我使用的是jaxrs-ri-2.01 我想在参数中获取在我的HTTP PUT请求正文中发送的二进制数据。

我找到了一个可以解决问题的注释:

@FormDataParam

但它似乎不适用于jaxrs-ri-2.01

我想知道:

  1. 如果有这种方式我可以使用这个jaxrs-ri版本
  2. 如果必须将jaxrs-ri版本更改为更新版本
  3. 如何使用此注释
  4. 提前感谢您的回答!

1 个答案:

答案 0 :(得分:0)

  
      
  1. 如果有这种方式我可以使用这个jaxrs-ri版本
  2.   

您需要jersey-media-multipart。这有多部分支持。如果您使用的是Maven,请添加

<dependency>
    <groupId>org.glassfish.jersey.media</groupId>
    <artifactId>jersey-media-multipart</artifactId>
    <version>2.0.1</version> <!-- or whatever version
</dependency>                     you plan to use. -->

如果您不使用Maven,可以找到下载here。向下滚动并选择您正在使用的Jersey版本。然后单击 Download(Jar)按钮进行下载。您还需要随附的mimepull jar。要找到它,请向下滚动并点击与mimepull一起使用的版本按钮。

  
      
  1. 如果必须将jaxrs-ri版本更改为更新版本
  2.   

如上所述,任何2.x版本都会在不同的工件中具有多部分支持。

  
      
  1. 如何使用此注释
  2.   

首先,您需要注册MultiPartFeature。请参阅here以获取帮助。然后做一些像

这样的事情
@POST
@Consumes(MediaType.MULTIPART_FORM_DATA)
public Response post(@FormDataParam("file") InputStream file) {
   ...
}

另请参阅(有关详细信息和示例):