@crack_user

Функция move_uploaded_file выдает ошибку 0, что делать?

Почему-то файл не может загрузится на сервер, проверял доступы к папкам/файлам, которые как-то связаны - везде стоит 777. Пути все тоже верны.
$path = $_SERVER['DOCUMENT_ROOT'] . 'uploads/';
$destination = '';
    if(!empty($_FILES))
    {
        if(is_dir($path))
        {
            $path .= $_FILES['file-135']['name'];
            if($_FILES['file-135']['error'] === UPLOAD_ERR_OK)
            {
                $destination = $_SERVER['DOCUMENT_ROOT'] . 'uploads/' . $_FILES['file-135']['name']; // Укажите путь к конечной папке сохранения файла

                $moved = move_uploaded_file($_FILES['file-135']['tmp_name'], $destination);
                if( $moved ) {
                    $error = "Successfully uploaded";
                } else {
                    $error =  "Not uploaded because of error #".$_FILES["file-135"]["error"];
                }
            } else {
                $error = 'Not uploaded #'.$_FILES['file-135']['error'];
            }
        } else {
            $error = 'not dir';
        }
    } else {
        $error = 'not $_FILES';
    }
  • Вопрос задан
  • 113 просмотров
Решения вопроса 2
ipatiev
@ipatiev Куратор тега PHP
Потомок старинного рода Ипатьевых-Колотитьевых
0 - это не ошибка, а какая-то фигня.
Ошибка - это Warning, который генерирует эта функция, если не может выполнить свою работу.
Чтобы увидеть эту ошибку на экране, надо включить вывод ошибок РНР на экран, display_errors
Если ошибки выводить на экран нельзя, то их надо смотреть в логе.

Чтобы узнать, что делать, надо прочесть сообщение об ошибке
Ответ написан
ThunderCat
@ThunderCat Куратор тега PHP
{PHP, MySql, HTML, JS, CSS} developer
move_uploaded_file возвращает true или false, никакого нуля она не возвращает. Ищите варнинги в логах, там все написано.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
$error =  "Not uploaded because of error #".$_FILES["file-135"]["error"];
Бессмысленно, поскольку $_FILES["file-135"]["error"] содержит статус передачи файлов с клиента на сервер и никак не зависит от move_uploaded_file.
Если from является загруженным файлом, но не может быть перемещён по каким-либо причинам, никаких действий не предпринимается и move_uploaded_file() возвращает false. Кроме того, отображается предупреждение.
Соответвственно, вам надо включить отображение предупреждений.
ini_set('error_reporting', E_ALL);
ini_set('display_errors', 1);
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы