2015-07-29 2 views
4

Я весь день смотрел, как загрузить изображение из приложения на сервер. Я сделал мобильную сторону приложенияandroid-async-http загрузка изображения на php-сервер

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"; 
}?> 

, но я не могу найти изображение на сервере даже StatusCode было КАМИ

чем проблема? ? неправильный код php?

+0

показать ваше тело plz вашего ответа – eddykordo

+0

@eddykordo это только показать неудачу –

+0

Возможно, у вас неправильный chmod для вашей папки для загрузки – eddykordo

ответ

9

Я решил проблему, это было в моем 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) { 

    } 
}); 
} 
Смежные вопросы