通过 RestEasy 通过 MultipartOutput 上传文件
upload a file via RestEasy via MultipartOutput
我正在尝试通过 RestEasyClient 以编程方式将文件上传到 enpoint。
File file = new File("/Users/michele/path/file.txt");
MultipartOutput multipartOutput = new MultipartOutput();
multipartOutput.addPart(file, MediaType.APPLICATION_OCTET_STREAM_TYPE, "file.txt");
Entity<MultipartOutput> entity = Entity.entity(multipartOutput, MediaType.MULTIPART_FORM_DATA_TYPE);
//client is an instance of org.jboss.resteasy.client.jaxrs.ResteasyClient
client
.target("http://localhost:8080/endpoint")
.request()
.post(entity);
问题是后端没有"find"我上传的文件
后端代码
DiskFileItemFactory factory = new DiskFileItemFactory();
ServletFileUpload fileUpload = new ServletFileUpload(factory);
List<FileItem> items = fileUpload.parseRequest(httpReq);
项目总是空的。
如许多文章所述,使用 MultipartFormDataOutput::addFormData 有效但不适合我的用例。
也可以使用 apache.http.client.HttpClient,但我更愿意避免向我的客户端添加依赖项。
有什么想法吗?
找到了。
诀窍是使用 MultipartFormDataOutput 并在添加部分时设置文件名
MultipartFormDataOutput multipartOutput = new MultipartFormDataOutput();
multipartOutput.addFormData("uploaded file", file, MediaType.APPLICATION_OCTET_STREAM_TYPE, "file.txt");
我正在尝试通过 RestEasyClient 以编程方式将文件上传到 enpoint。
File file = new File("/Users/michele/path/file.txt");
MultipartOutput multipartOutput = new MultipartOutput();
multipartOutput.addPart(file, MediaType.APPLICATION_OCTET_STREAM_TYPE, "file.txt");
Entity<MultipartOutput> entity = Entity.entity(multipartOutput, MediaType.MULTIPART_FORM_DATA_TYPE);
//client is an instance of org.jboss.resteasy.client.jaxrs.ResteasyClient
client
.target("http://localhost:8080/endpoint")
.request()
.post(entity);
问题是后端没有"find"我上传的文件
后端代码
DiskFileItemFactory factory = new DiskFileItemFactory();
ServletFileUpload fileUpload = new ServletFileUpload(factory);
List<FileItem> items = fileUpload.parseRequest(httpReq);
项目总是空的。
如许多文章所述,使用 MultipartFormDataOutput::addFormData 有效但不适合我的用例。
也可以使用 apache.http.client.HttpClient,但我更愿意避免向我的客户端添加依赖项。
有什么想法吗?
找到了。 诀窍是使用 MultipartFormDataOutput 并在添加部分时设置文件名
MultipartFormDataOutput multipartOutput = new MultipartFormDataOutput();
multipartOutput.addFormData("uploaded file", file, MediaType.APPLICATION_OCTET_STREAM_TYPE, "file.txt");