1

私のアプリでは、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();
    }
}

私の質問は次のとおりです。応答を使用してクライアントに送り返すにはどうすればよいですか? ありがとう。

4

2 に答える 2

0

応答としてリンクを送り返し、受信したリンクからダウンロードを開始します。

于 2012-05-30T15:49:19.753 に答える
0
response.setContentType("image/png"); // fill proper image type
response.getOutputStream().write(IOUtils.toByteArray(imgStream));

詳しくは、Google App Engine (Java) による動的画像の提供をご覧ください。

于 2012-05-30T15:51:52.850 に答える