Загрузка изображений к серверу PHP от Android

Я должен загрузить изображение на удаленный сервер PHP, который ожидает следующие параметры в HTTPPOST:

*$_POST['title']*
*$_POST['caption']*
*$_FILES['fileatt']*

Большинство поисков в Интернете предложило также:

Загрузите следующие классы и попытку MultiPartEntity для отправления запроса:

apache-mime4j-0.5.jar
httpclient-4.0-beta2.jar
httpcore-4.0-beta3.jar
httpmime-4.0-beta2.jar

ИЛИ

Используйте URLconnection и обработайте многослойные данные самостоятельно.

Btw, я увлечен использованием класса HttpClient, а не java.net (или это android.net), классы. В конечном счете я загрузил Многослойные классы с исходного кода Android и использовал их в моем проекте вместо этого.

Хотя это может быть сделано любым из вышеупомянутых методов, я хотел бы удостовериться, ли это единственные способы достигнуть упомянутой цели. Я скользил через документацию и нашел a FileEntity класс, но я не мог заставить это работать.

Что корректный путь состоял в том, чтобы сделать это в приложении Android?

Спасибо.

6
задан Samuh 30 March 2010 в 10:47
поделиться

3 ответа

Исходный код Android, похоже, поставляется с внутренней многоэлементной вспомогательной библиотекой. См. Этот пост . На первый взгляд, это лучше документировано, чем множество общедоступных API (кашель, кашель, SoundPool, кашель, кашель), так что это должно быть довольно хорошим местом для начала или, возможно, прекрасным просто использовать решение для вставки.

5
ответ дан 9 December 2019 в 20:41
поделиться

Я делаю именно это, чтобы взаимодействовать с сервером размещения изображений (реализованным также в php), который ожидает параметры, как если бы они были отправлены со страницы html.

Я создаю List своих ключей и значений примерно так:

    List<NameValuePair> params = new ArrayList<NameValuePair>(2);
    params.add(new BasicNameValuePair(key1, value1));
    params.add(new BasicNameValuePair(key2, value2));

, а затем передаю его своему вспомогательному классу http, который устанавливает свойство HttpEntity моего запроса HttpPost.Вот метод прямо из моего вспомогательного класса:

public static HttpResponse Post(String url, List<NameValuePair> params, Context context)
{
    HttpResponse response = null;
    try
    {
        HttpPost request = new HttpPost();
        request.setURI(new URI(url));
        if(params != null)
            request.setEntity(new UrlEncodedFormEntity(params));
        HttpClient client = ((ApplicationEx)context.getApplicationContext()).getHttpClient();
        response = client.execute(request);
    }
    catch(Exception ex)
    {
        // log, etc
    }
    return response;
}
3
ответ дан 9 December 2019 в 20:41
поделиться

Может быть, этот пост в официальной группе Android поможет. Парень использует mime4j.

Другим полезным ресурсом может быть этот пример в книге Pro Android.

4
ответ дан 9 December 2019 в 20:41
поделиться
Другие вопросы по тегам:

Похожие вопросы: