2012年6月5日火曜日

AndroidからHTTPサーバへ画像ファイルをアップロードする

try {
  
  String url = "アップロードする先のURL";
  HttpClient http_client = new DefaultHttpClient();
  HttpPost http_request = new HttpPost(url);
  MultipartEntity multipart_entity = new MultipartEntity();
  
  multipart_entity.addPart("image_file", new FileBody(new File("画像ファイルへのパス")));
  http_request.setEntity(multipart_entity);
  
  HttpResponse http_response = http_client.execute(http_request);
  int status = http_response.getStatusLine().getStatusCode();
  
  if(status != HttpStatus.SC_OK) {
    
    // 送信失敗
    
  } else {
    
    ByteArrayOutputStream byte_array_output_stream = new ByteArrayOutputStream();
    http_response.getEntity().writeTo(byte_array_output_stream);
    String response_message = byte_array_output_stream.toString();
    
    if(response_message.indexOf("ERROR") == -1) {
      
      // 送信成功
      
    } else {
      
      // たぶん送信失敗
      
    }
  
  }

} catch (Exception e) {
  
  // 例外処理
  
}



HTTPサーバ側がPHPで処理をしている場合は以下の変数にアップロードされた画像ファイルのパスが入っていますので、move_uploaded_file関数等で処理します。

$_FILES['image_file']['tmp_name'];