我正在从我的Android客户端发送图像到java jersey restful服务,我成功地做到了。但我的问题是当我尝试发送大图像时说> 1MB它消耗更多时间所以我喜欢发送图像 CHUNKS 任何人都可以帮我这样做。如何在CHUNKS中发送( POST )图像流到服务器
答案 0 :(得分:0)
使用的参考文献:
/*** SERVER SIDE CODE****/
@POST
@Path("/upload/{attachmentName}")
@Consumes(MediaType.APPLICATION_OCTET_STREAM)
public void uploadAttachment(
@PathParam("attachmentName") String attachmentName,
@FormParam("input") InputStream attachmentInputStream) {
InputStream content = request.getInputStream();
// do something better than this
OutputStream out = new FileOutputStream("content.txt");
byte[] buffer = new byte[1024];
int len;
while ((len = in.read(buffer)) != -1) {
// whatever processing you want here
out.write(buffer, 0, len);
}
out.close();
return Response.status(201).build();
}
/**********************************************/
/**
CLIENT SIDE CODE
**/
// .....
client.setChunkedEncodingSize(1024);
WebResource rootResource = client.resource("your-server-base-url");
File file = new File("your-file-path");
InputStream fileInStream = new FileInputStream(file);
String contentDisposition = "attachment; filename=\"" + file.getName() + "\"";
ClientResponse response = rootResource.path("attachment").path("upload").path("your-file-name")
.type(MediaType.APPLICATION_OCTET_STREAM).header("Content-Disposition", contentDisposition)
.post(ClientResponse.class, fileInStream);
您应该在客户端中拆分文件并恢复服务器中的部分文件。 之后你应该将文件合并在一起。看看split /merge file on coderanch
享受! :)
答案 1 :(得分:0)
另一条路径是可用的,如果您不想编写太多代码,请考虑使用: file upload apache太棒了! :)