move_uploaded_file() возвращает FALSE

dimitrius

Новичок
по мануалу
Код:
Возвращаемые значения

В случае успеха возвращает TRUE.

Если filename не является загруженным файлом, никаких действий не предпринимается и move_uploaded_file() возвращает FALSE.

Если filename является загруженным файлом, но не может быть перемещён по каким-либо причинам, никаких действий не предпринимается и move_uploaded_file() возвращает FALSE. Кроме того, отображается предупреждение.
Поскольку нет никакого предупреждения подходит filename не является загруженным файлом, но почему? при var_dump($_FILES) он есть и проверка is_uploaded_file проходит. В чем может быть причина?
http://phpclub.ru/talk/threads/Ошибка-move_uploaded_file.46259/ смотрел
вроде как здесь , но так и не понял почему
 
Последнее редактирование:

c0dex

web.dev 2002-...
Команда форума
Партнер клуба
dimitrius, где код, что мы будем обсуждать? Мануал?

Поскольку нет никакого предупреждения подходит filename не является загруженным файлом, но почему?
Сам понял, что написал? Я вот нет =)
 

dimitrius

Новичок
dimitrius, где код, что мы будем обсуждать? Мануал?


Сам понял, что написал? Я вот нет =)
Если filename не является загруженным файлом, никаких действий не предпринимается и move_uploaded_file() возвращает FALSE. - о предупреждении ничего не говорится.
Если filename является загруженным файлом, но не может быть перемещён по каким-либо причинам, никаких действий не предпринимается и move_uploaded_file() возвращает FALSE. Кроме того, отображается предупреждение.
Код:
<!-- Тип кодирования данных, enctype, ДОЛЖЕН БЫТЬ указан ИМЕННО так -->
<form enctype="multipart/form-data" action="__URL__" method="POST">
    <!-- Поле MAX_FILE_SIZE должно быть указано до поля загрузки файла -->
    <input type="hidden" name="MAX_FILE_SIZE" value="30000" />
    <!-- Название элемента input определяет имя в массиве $_FILES -->
    Отправить этот файл: <input name="userfile" type="file" />
    <input type="submit" value="Send File" />
</form>
Код:
<?php
// В PHP 4.1.0 и более ранних версиях следует использовать $HTTP_POST_FILES
// вместо $_FILES.

$uploaddir = __DIR__.'/uploads/';
$uploadfile = $uploaddir . basename($_FILES['userfile']['name']);

echo '<pre>';
if (move_uploaded_file($_FILES['userfile']['tmp_name'], $uploadfile)) {
    echo "Файл корректен и был успешно загружен.\n";
} else {
    echo "Возможная атака с помощью файловой загрузки!\n";
}

echo 'Некоторая отладочная информация:';
print_r($_FILES);

print "</pre>";

?>
 
Последнее редактирование:

c0dex

web.dev 2002-...
Команда форума
Партнер клуба
Отладкой занимался?
 

c0dex

web.dev 2002-...
Команда форума
Партнер клуба
Выкладывай код, включи ошибки, надо смотреть
 

c0dex

web.dev 2002-...
Команда форума
Партнер клуба
dimitrius, я не верю, что функция не работает, либо ошибки ты не включил, либо писать в папку не можешь, либо еще что-то. Чудес не бывает, правда ведь. У всех нас тут работает, а ты один такой уникальный.

Версия php? ОС? safe_mode? open_basedir?
 

dimitrius

Новичок
dimitrius, я не верю, что функция не работает, либо ошибки ты не включил, либо писать в папку не можешь, либо еще что-то. Чудес не бывает, правда ведь. У всех нас тут работает, а ты один такой уникальный.

Версия php? ОС? safe_mode? open_basedir?
я тоже не верю, скорей всего проблема на стороне сервера php 5.3, safe_mode отключен, open_basedir разрешен, ось debian 7, права 777, tmp по умолчанию
а самое парадоксальное, что паралельно скрипт работает, а этот нет. Вкурить немогу что за фея
 

c0dex

web.dev 2002-...
Команда форума
Партнер клуба
php обнови, и дай реальный код. Я просто ради интереса проверю =)))
 

c0dex

web.dev 2002-...
Команда форума
Партнер клуба
Где мог быть подвох я сказал.
 
Сверху