В моем приложении я загружаю Bitmap на сервер, используя MultiPartEntity.
Код:
public static boolean UploadFile(String stringUrl, byte[] bitmapArray) throws Exception {
String uploadUrl = stringUrl;
HttpPost postRequest = new HttpPost(uploadUrl);
MultipartEntity entity = new MultipartEntity();
entity.addPart("image", new ByteArrayBody(bitmapArray, "image/png", "image"));
postRequest.setEntity(entity);
HttpResponse httpResponse;
HttpClient httpClient = getHttpClient();
httpClient.getParams().setBooleanParameter("http.protocol.handle-redirects",false);
httpResponse = httpClient.execute(postRequest);
.
.
}
И получить битмап из запроса и сохранить его в блобе.
Код:
private void handleFileUpload(HttpServletRequest request, HttpServletResponse response) {
try {
ServletFileUpload upload = new ServletFileUpload();
FileItemIterator iter = upload.getItemIterator(request);
FileItemStream imageItem = iter.next();
InputStream imgStream = imageItem.openStream();
Blob imageBlob = new Blob(IOUtils.toByteArray(imgStream));
MyImage myImage = new MyImage(imageItem.getName(), imageBlob);
.
.
} catch (FileUploadException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
Мой вопрос: как я могу отправить его обратно клиенту с помощью ответа? Благодарю.
Отправьте ссылку в ответ и начните загрузку с полученной ссылки.
response.setContentType("image/png"); // fill proper image type
response.getOutputStream().write(IOUtils.toByteArray(imgStream));
Дополнительная информация об обслуживании динамических изображений с помощью Google App Engine (Java)