Я целый день искал, как загрузить изображение из моего приложения на серверную часть.
Я сделал на стороне мобильного приложения
public static void postImage(String ImageLink){
RequestParams params = new RequestParams();
params.put("uploaded_file[name]", "MyImageName");
try {
params.put("uploaded_file[image]", new File(ImageLink));
} catch (FileNotFoundException e) {
e.printStackTrace();
}
AsyncHttpClient client = new AsyncHttpClient();
client.post(MY_PHP_FILE_LINK, params, new AsyncHttpResponseHandler() {
@Override
public void onSuccess(int statusCode, Header[] headers, byte[] responseBody) {
System.out.println("statusCode "+statusCode);//statusCode 200
}
@Override
public void onFailure(int statusCode, Header[] headers, byte[] responseBody, Throwable error) {
}
});
}
и мой код стороны php
<?php
$file_path = "/uploads/";
$file_path = $file_path . basename( $_FILES['uploaded_file']['name']);
if(move_uploaded_file($_FILES['uploaded_file']['tmp_name'], $file_path)) {
echo "success";
} else{
echo "fail";
}?>
но я не могу найти изображение на сервере, даже код состояния был в порядке
в чем проблема?? мой php код неправильный?
Я решил проблему, это было в моих RequestParams, я пытался изменить имя файла, но, кажется, я не могу сделать это, чтобы я изменил свой код, и он работает нормально
public static void postImage(String ImageLink){
RequestParams params = new RequestParams();
try {
params.put("uploaded_file", new File(ImageLink));
} catch (FileNotFoundException e) {
e.printStackTrace();
}
AsyncHttpClient client = new AsyncHttpClient();
client.post(MY_PHP_FILE_LINK, params, new AsyncHttpResponseHandler() {
@Override
public void onSuccess(int statusCode, Header[] headers, byte[] responseBody) {
System.out.println("statusCode "+statusCode);//statusCode 200
}
@Override
public void onFailure(int statusCode, Header[] headers, byte[] responseBody, Throwable error) {
}
});
}
Других решений пока нет …