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

1

Я отправляю фотографии из своего Android-приложения на сервер, у которого есть этот код 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";
}
?>

После завершения загрузки изображение находится в ожидаемой папке, но эхо было "сбой". Важно знать правильное эхо, почему возможно, что эхо-сообщение возвращается как не пройденное?

  • 0
    Возможно, uploads/ недоступна для записи пользователю сервера?
  • 5
    может быть, ваш файл существует в dir перед загрузкой?
Показать ещё 6 комментариев
Теги:
file-upload

3 ответа

0

Программистам Android необходимо использовать

InputStream is = new BufferedInputStream(conn.getInputStream());
String s = convertInputStreamToString(is);

Теперь вернемся к успеху. convertInputStreamToString - мой собственный метод, но каждый может понять, как его написать. Предложение @mcklayin было правильным.

0

Вы можете попробовать использовать возвращаемое значение ошибки, чтобы отобразить тип ошибки, например:

<?php
$errors=array(
    UPLOAD_ERR_INI_SIZE     =>  'UPLOAD_ERR_INI_SIZE',
    UPLOAD_ERR_FORM_SIZE    =>  'UPLOAD_ERR_FORM_SIZE',
    UPLOAD_ERR_PARTIAL      =>  'UPLOAD_ERR_PARTIAL',
    UPLOAD_ERR_NO_FILE      =>  'UPLOAD_ERR_NO_FILE',
    UPLOAD_ERR_NO_TMP_DIR   =>  'UPLOAD_ERR_NO_TMP_DIR',
    UPLOAD_ERR_CANT_WRITE   =>  'UPLOAD_ERR_CANT_WRITE',
    UPLOAD_ERR_EXTENSION    =>  'UPLOAD_ERR_EXTENSION'
);

$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{
    $error=$errors[ $_FILES["uploaded_file"]["error"] ];
    echo "fail:" . $error;
}
?>
0

попробуйте этот код:

$file = $_FILES['fileup']['name'];
$tmp_name = $_FILES['fileup']['tmp_name'];
$target_dir = "uploads/".basename($file);
if($file!="")
{  
    if(move_uploaded_file($tmp_name,$target_dir))
    {
        $fileErr = "Image Upload Success";
    }
    else
    {
        $filer = "Image Upload Not Success";
    }
}
  • 0
    попробовал ваш код с файлом изменений uploaded_file и положил эхо внутри if. Результатом было то, что я не получил эха, и картинка была правильно загружена хм: /
  • 0
    Извините, я понял, что картинка уже была загружена в данный момент, чтобы получить эхо от URL-адреса php. Завтра еще раз проверю код андроида, сейчас уже поздно.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню