2011-10-26 18 views
0

サーブレットであるサーバーにアンドロイドの電話から画像を送信しています。これにはHttpClientとHttpPost、送信する前に画像を保存するにはByteArrayBodyを使用しています。javaでサーブレットに画像を送信するサーブレットで画像を取得する方法

サーブレットの投稿リクエストからイメージを抽出するにはどうすればいいですか?ここで

はポスト要求

String postURL = //server url; 

HttpClient httpClient = new DefaultHttpClient(); 
HttpPost postRequest = new HttpPost(postURL); 

ByteArrayBody bab = new ByteArrayBody(imageBytes,"file_name_ignored"); 
MultipartEntity reqEntity = new MultipartEntity(HttpMultipartMode.BROWSER_COMPATIBLE); 
reqEntity.addPart("source", bab); 
postRequest.setEntity(reqEntity); 

HttpResponse response = httpClient.execute(postRequest); 
+0

:http://stackoverflow.com/questions/2422468/how-to-upload-files-in-jsp-servlet/2424824#2424824 – BalusC

答えて

3

commons fileuploadのようなものを使用してを送信するための私のコードです。

ApacheのドキュメントやWeb上の例があります。

+0

あなたが上でこの – SaNmm

+3

user964428 @をクリックするための一例を投稿することができますリンクをクリックし、ユーザーガイドまたは例の1つを見てください。誰かが投稿したことを逆戻りさせただけでは、どのように問題を診断/トラブルシューティングしますか? –

0

使用http://commons.apache.org/fileupload/using.html

private DiskFileItemFactory fif = new DiskFileItemFactory(); 

protected void doPost(HttpServletRequest req, HttpServletResponse resp) 
       throws ServletException, IOException { 
    boolean isMultipart = ServletFileUpload.isMultipartContent(req); 

    if(!isMultipart) 
     throw new ServletException("upload using multipart"); 

    ServletFileUpload upload = new ServletFileUpload(fif); 
    upload.setSizeMax(1024 * 1024 * 10 /* 10 mb */); 
    List<FileItem> items; 
    try { 
     items = upload.parseRequest(req); 
    } catch (FileUploadException e) { 
     throw new ServletException(e); 
    } 

    if(items == null || items.size() == 0) 
     throw new ServletException("No items uploaded"); 

    FileItem item = items.get(0); 
    // do something with file item... 
} 
+0

しかし、私はそれを取得した後にサーバーにイメージを送信していますので、どうすればそれを編集することができます – SaNmm

+0

私はそれが別の質問だと思っています:)しかし、できることはたくさんあります:http://www.javalobby.org/記事/最終イメージ/ – danb

2

サーブレット3.0は、マルチパートデータの読み込みをサポートしています。 MutlipartConfig support in Servlet 3.0 serveltが@MutlipartConfigアノテーションを使用して注釈が付けられている場合、コンテナは

  1. HttpServletRequest.getParts()
  2. HttpServletRequest.getPart( "名前")を介して利用可能なマルチパート部品を製造するための責任があります。
  3. 関連
関連する問題