Java 如何使用org.jboss.resteasy.client.ClientRequest上传多部分文件?
我需要维护一个遗留软件。如何使用Java 如何使用org.jboss.resteasy.client.ClientRequest上传多部分文件?,java,file-upload,jboss,resteasy,Java,File Upload,Jboss,Resteasy,我需要维护一个遗留软件。如何使用org.jboss.resteasy.client.ClientRequest上传文件org.springframework.web.multipart.MultipartFile 简言之,我希望实现: curl-X POSThttp://mydomain/upload?sender=mr_abc -F file=@${file}使用ClientRequest。 ${FILE}可以是任何字符串路径文件,例如:/Users/mr_abc/mytarfile.tar
org.jboss.resteasy.client.ClientRequest
上传文件org.springframework.web.multipart.MultipartFile
简言之,我希望实现:
curl-X POSThttp://mydomain/upload?sender=mr_abc -F file=@${file}
使用ClientRequest
。
${FILE}
可以是任何字符串路径文件,例如:/Users/mr_abc/mytarfile.tar
以下是我所拥有的:
request = new ClientRequest("http://mydomain/upload");
request.header("Content-Type","multipart/form-data");
request.queryParameter("sender", "mr_abc");
request.queryParameter("file", new File("/Users/mr_abc/mytarfile.tar"));
ClientResponse<String> response = request.post(String.class);
request=newclientrequest(“http://mydomain/upload");
请求标题(“内容类型”、“多部分/表单数据”);
请求。查询参数(“发送方”、“abc先生”);
request.queryParameter(“文件”,新文件(“/Users/mr_abc/mytarfile.tar”);
ClientResponse-response=request.post(String.class);
这导致了错误
所需的请求部分“文件”不存在
部分文件部分=request.getPart(“文件”);//检索
Part filePart = request.getPart("file"); // Retrieves <input type="file" name="file">
String fileName = Paths.get(filePart.getSubmittedFileName()).getFileName().toString(); // MSIE fix.
InputStream uploadedInputStream = filePart.getInputStream();
Try above code to parse request and extract file contents.
字符串文件名=路径.get(filePart.getSubmittedFileName()).getFileName().toString();//MSIE修复程序。
InputStream uploadedInputStream=filePart.getInputStream();
尝试上面的代码来解析请求并提取文件内容。
我们需要添加:
<dependency>
<groupId>org.jboss.resteasy</groupId>
<artifactId>resteasy-multipart-provider</artifactId>
<version>3.0.19.Final</version>
<scope>test</scope>
</dependency>
没有
request.getPart(String)
方法。您应该为它添加依赖项
File file = new File("/Users/mr_abc/mytarfile.tar");
MultipartFormDataOutput upload = new MultipartFormDataOutput();
upload.addFormData("file", targetStream, MediaType.MULTIPART_FORM_DATA_TYPE, "mytarfile.tar");
request = new ClientRequest("http://mydomain/upload");
request.queryParameter("sender", "mr_abc");
request.body(MediaType.MULTIPART_FORM_DATA_TYPE, upload);
ClientResponse<String> response = request.post(String.class);