2011-07-29 12 views
1

アンドロイドデバイスからPHPのウェブサイトに写真をアップロードしようとしています。 これは私がMultipartEntityエンコーディングを使用しています。アンドロイドからPHPサーバに画像をアップロード

私のプロジェクトにはaddedexternal jar filehttpmime-4.1-beta1.jarと入力してください。

SDcardに保存されています。 この目的を達成するために、私は私のコードに次のようにやっている:

HttpPost httppost = new HttpPost("....the link to the webiste..."); 

     MultipartEntity reqEntity = new MultipartEntity(); 
     StringBody sb=new StringBody("...."); 


     File file=new File("/sdcard/image.jpg"); 
     FileBody bin = new FileBody(file); 
     reqEntity.addPart("android",bin); 
     reqEntity.addPart("id", sb); 

     httppost.setEntity(reqEntity); 

     HttpResponse response = httpclient.execute(httppost); 
     HttpEntity resEntity = response.getEntity(); 


     if (resEntity != null) { 
      String page = EntityUtils.toString(resEntity); 
      System.out.println("PAGE :" + page); 
     } 

しかし、これに伴う問題は、PHPサーバーからの応答が常にリンク切れであるということです。

私は次試すたいこと

MultipartEntity reqEntity = new MultipartEntity(HttpMultipartMode.BROWSER_COMPATIBLE); 

を使用することです。しかし、残念ながら、私は輸入jarはあなたが右方向、何で私を指すことができれば、私は本当に感謝HttpMultipartMode.BROWSER_COMPATIBLE。だからためのクラスを持っていませんそうでなければ、私はこれを動作させるためにインポートする必要があります...または、どうすればイメージをサーバーにアップロードするべきですか? 私は、サーバーが写真をこのようにアップロードする構築であると言わなければならない:

method="post" enctype="multipart/form-data" 
         name="form" target="_self" id="form"> 
        <input type="hidden" name="p" value="a" /> 

感謝を!

+0

あなたは、おそらくこのような何かを探している: http://stackoverflow.com/questions/5476625/android-simple-way-to画像をホストにアップロードする/ 5476726#5476726 – pawelzieba

答えて

2

betaライブラリを使用しないことをお勧めします。 apache-mime4j-0.6を使用してください。

httpmime-4.0.1も必要です。

これらはあなた輸入する必要があります。

 import org.apache.http.HttpResponse; 
     import org.apache.http.client.ClientProtocolException; 
     import org.apache.http.client.HttpClient; 
     import org.apache.http.client.entity.UrlEncodedFormEntity; 
     import org.apache.http.client.methods.HttpGet; 
     import org.apache.http.client.methods.HttpPost; 
     import org.apache.http.entity.mime.HttpMultipartMode; 
     import org.apache.http.entity.mime.MultipartEntity; 
     import org.apache.http.entity.mime.content.FileBody; 
     import org.apache.http.entity.mime.content.StringBody; 
     import org.apache.http.impl.client.DefaultHttpClient; 
     import org.apache.http.message.BasicNameValuePair; 
+0

Ok、incerc.Multumesc – adrian

+0

私の編集をチェックしてください。 –

+0

これで、org.apache.james.mime4j.message.SingleBody型を解決できないことがわかりました。これは、次の行のrequire .class ファイルから間接的に参照されます。\t MultipartEntity reqEntity = new MultipartEntity(); reqEntity.addPart( "android"、bin); \t reqEntity.addPart( "id"、sb); – adrian

関連する問題