загрузить изображение с Android на PHP-сервер - PullRequest
1 голос
/ 29 июля 2011

Я пытаюсь загрузить фотографию с устройства Android на сайт php.Для этого я использую кодировку MultipartEntity.

Для этого я added в свой проект как external jar file httpmime-4.1-beta1.jar.

Что я хочу загрузить на сайт phpimage хранится в 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" />

Спасибо!

1 Ответ

2 голосов
/ 29 июля 2011

Я бы порекомендовал не использовать библиотеку 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;
...