问题描述
在我的应用程序中,我需要将在我的rest api上载的文件转发到另一个api。我不需要对该文件做任何事情,只需将其重新发布即可。我看到我可以提取字节数组,文件名,内容类型等,并将其放入MultipartFormDataOutput
中(目前还不确定如何)。但是,由于文件已经包含名称和内容类型之类的所有内容,是否有一种简单的方法转发文件?我试图将身体部位作为InputStream
中的MulitpartFormDataInput
并将其添加到MultipartFormDataOutput
中,但这没用。
Maven依赖关系-依赖关系版本为2.3.8.SP4-redhat-2(旧版应用程序仍在JBoss6.3上运行):
<dependency>
<groupId>org.jboss.resteasy</groupId>
<artifactId>resteasy-jaxrs</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.jboss.resteasy</groupId>
<artifactId>resteasy-multipart-provider</artifactId>
<scope>provided</scope>
</dependency>
接收文件的端点的定义:
@POST
@Path(UPLOAD_PATH)
@Consumes(MediaType.MULTIPART_FORM_DATA)
public Response uploadFile(
MultipartFormDataInput fileUploadForm)
将包含其他元数据的文件发送到目标api:
public ClientResponse createFile(String url,String MetaData,MultipartFormDataInput fileUploadForm) throws Exception {
Map a = fileUploadForm.getFormDataMap();
MultipartFormDataOutput formData = new MultipartFormDataOutput();
formData.addFormData("Metadata",MetaString,MediaType.APPLICATION_JSON_TYPE);
// Here I tried to get the body as InputStream
formData.addFormData("file",fileUploadForm.getFormDataMap().get("file").get(0).getBody(InputStream.class,null),MediaType.APPLICATION_OCTET_STREAM_TYPE);
ClientRequest request = new ClientRequest(url);
request.body(MediaType.MULTIPART_FORM_DATA,formData);
return request.post();
}
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)