Как отправить растровое изображение с сервера на клиент?

1

В моем приложении я загружаю 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();
    }
}

Мой вопрос: как я могу отправить его обратно клиенту с помощью ответа? Благодарю.

Теги:
servlets
google-app-engine

2 ответа

0

Отправьте ссылку в ответ и начните загрузку с полученной ссылки.

0
response.setContentType("image/png"); // fill proper image type
response.getOutputStream().write(IOUtils.toByteArray(imgStream));

Дополнительная информация об обслуживании динамических изображений с помощью Google App Engine (Java)

  • 0
    попытка чтения его обратно в клиенте с помощью ObjectInputStream in = new ObjectInputStream (httpResponse.getEntity (). getContent ()); byte [] input = (byte []) in.readObject (); выдает EOFException. есть предположение?
  • 0
    @Rami искать поток в начале.
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню