загрузить локальный файл Android на удаленный веб-сервер, используя curl - PullRequest
0 голосов
/ 06 ноября 2018

Я пытаюсь загрузить файл с моего устройства Android с помощью curl. Файл находится на

/ SDCard / Скачать / fileToUpload.txt

Ниже приведена команда, которую я использую через Terminal application: -

curl -i -X POST -H "Content-Type: multipart/form-data" \            
                -F "content=@/sdcard/Download/fileToUpload.txt" \
                 http://192.168.1.104/android/upload.php

Я протестировал ту же команду, которая отлично работала с рабочего стола. Я бью себя по голове за последние несколько часов. Пожалуйста, дайте мне знать, что не так.

П.С .: Я волнуюсь, когда этот вопрос будет глупым.

edit: - Я не хочу рутировать свое устройство. Как это будет мой последний вариант.

Ответы [ 2 ]

0 голосов
/ 06 ноября 2018

Вы можете использовать Retrofit , очень мощную библиотеку для Android, предоставляющую полезные API для взаимодействия с серверами через запросы http.

В конкретном случае вы можете использовать сообщение в многочастной форме данных в соответствии с этим шаблоном в файле интерфейса

@Multipart
@POST("/android/upload.php")
Call<Void> sendFiles(
        @Part MultipartBody.Part[] files
);

Затем вам нужно создать модификацию в вашем конкретном коде:

Retrofit retrofit = new Retrofit.Builder()
            .baseUrl(endpoint)
            .build();
0 голосов
/ 06 ноября 2018

Библиотека Curl установлена ​​на вашем рабочем столе, но это не значит, что такая же библиотека установлена ​​на вашем устройстве Android (приложение Terminal запускается на вашем устройстве). Чтобы установить библиотеку curl на устройство Android, вам, вероятно, придется выполнить рутирование вашего устройства, загрузить двоичные файлы curl и установить их на устройство. Вы можете следовать этому руководству, чтобы понять, как: https://appuals.com/install-curl-openssl-android/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...