Ошибка загрузки изображения с Android - PullRequest
0 голосов
/ 05 сентября 2011

Я пытаюсь загрузить изображение с телефона на сервер. Поэтому я получаю изображение URI и создаю с ним NameValuePair. Затем я использую следующий код Android, чтобы установить соединение и загрузить картинку. Это было взято из предыдущего вопроса stackoverflow (я бы связал, но не могу найти его даже с Google ...)

public void post(String url, List<NameValuePair> nameValuePairs) {

    HttpClient httpClient = new DefaultHttpClient();
    HttpContext localContext = new BasicHttpContext();
    HttpPost httpPost = new HttpPost(url);

    try {
           MultipartEntity entity = new  
                       MultipartEntity(HttpMultipartMode.BROWSER_COMPATIBLE);


             entity.addPart(nameValuePairs.get(0).getName(), new FileBody(new File(nameValuePairs.get(0).getValue())));
        Log.v("Uploading file",nameValuePairs.get(0).getValue());
        httpPost.setEntity(entity);
            HttpResponse response = httpClient.execute(httpPost);
           Log.v("Response", response.toString());
        } catch (IOException e) {
          e.printStackTrace();
        }
   }

На стороне сервера у меня есть следующий код. Это PHP, с которым я начинающий. Я знаю, что в коде нет проверки, но я хочу, чтобы загрузка работала до того, как я начну беспокоиться обо всем остальном.

      <?php

     if($_FILES){
           $name = $_FILES['image']['name'];
           move_uploaded_file($_FILES['image']['temp'],$name);

           echo "success!";
     }
    else {

  echo "Nothing uploaded";
   }
 ?>

Здесь имя NameValuePair - «изображение», которое используется в качестве имени файла.

Ничего не загружается, но соединение установлено. Пожалуйста, помогите.

По запросу я вставил print_r ($ Files) в код. Ответ от сервера был:

09-05 23:23:35.745: VERBOSE/Response(13849): Array

09-05 23:23:35.745: VERBOSE/Response(13849): (

09-05 23:23:35.745: VERBOSE/Response(13849):     [image] => Array

09-05 23:23:35.745: VERBOSE/Response(13849):         (

09-05 23:23:35.745: VERBOSE/Response(13849):             [name] => DSC_0100.jpg

09-05 23:23:35.745: VERBOSE/Response(13849):             [type] => 

09-05 23:23:35.745: VERBOSE/Response(13849):             [tmp_name] => /tmp/phpXcY8L1

09-05 23:23:35.745: VERBOSE/Response(13849):             [error] => 0


09-05 23:23:35.745: VERBOSE/Response(13849):             [size] => 806873

09-05 23:23:35.745: VERBOSE/Response(13849):         ) 09-05 23:23:35.745: VERBOSE/Response(13849): )

09-05 23:23:35.745: VERBOSE/Response(13849):**

Ответы [ 2 ]

0 голосов
/ 05 сентября 2011

move_uploaded_file ($ _ FILES [ 'изображение'] [ 'Темп'], $ название);замените эту строку на

move_uploaded_file ($ _ FILES ['image'] ['tmp_name'], $ name);

Временное имя файла находится в "tmp_name", как я могу видетьиз вашего журнала вывода.

0 голосов
/ 05 сентября 2011

На стороне сервера, пожалуйста, добавьте этот код,

print_r($_FILES);

, затем проверьте параметр массива 'error', затем проверьте код ошибки здесь http://php.net/manual/en/features.file-upload.errors.php

, если вы хотите код загрузки файладля Android тогда, пожалуйста, скажите мне, что я могу написать здесь

Я надеюсь, что это поможет вам.

Спасибо.

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