anfanger
Новичок
ошибка при работе с move_uploaded_file()
Взял хостинг у нового провайдера. Проверенный на других хостингах скрипт загрузки файлов отказывается работать. Выдается ошибка:
Warning: move_uploaded_file(/uploads/upfile.doc) [function.move-uploaded-file]: failed to open stream: No such file or directory in /home/siteru/public_html/php/scrypt.php on line 169
Warning: move_uploaded_file() [function.move-uploaded-file]: Unable to move '/tmp/phpSrTynr' to '/uploads/upfile.doc' in /home/siteru/public_html/php/scrypt.php on line 169
Из сообщения видно, что файл нормально грузится на сервер, но из временной папки в выделенную под загрузку папку /uploads/ не перемещается. Папка находится в корневом каталоге, там же где и /tmp/
Саппорт посоветовал выставить доступ на /uploads/ 777. Сделал. Результат - 0.
Потом он посоветовал перемещенный файл также сохранять в /tmp/, а не в /uploads/. Попробовал. Сообщение об ошибке пропало, но в /tmp/ файла нет. Насколько я помню move_uploaded_file() за собой во временной папке подтирает.
Ради смеха попробовал использовать под загрузку все папки, которые мне хостер дал в корне по умолчанию. Функция их не видит ни одной, кроме /etc, по отношению к которой выдается ошибка, что доступ закрыт.
Кстати, аналогичная ситуация и с функцией copy().
Код:
Помогите разобраться, пожалуйста!
Взял хостинг у нового провайдера. Проверенный на других хостингах скрипт загрузки файлов отказывается работать. Выдается ошибка:
Warning: move_uploaded_file(/uploads/upfile.doc) [function.move-uploaded-file]: failed to open stream: No such file or directory in /home/siteru/public_html/php/scrypt.php on line 169
Warning: move_uploaded_file() [function.move-uploaded-file]: Unable to move '/tmp/phpSrTynr' to '/uploads/upfile.doc' in /home/siteru/public_html/php/scrypt.php on line 169
Из сообщения видно, что файл нормально грузится на сервер, но из временной папки в выделенную под загрузку папку /uploads/ не перемещается. Папка находится в корневом каталоге, там же где и /tmp/
Саппорт посоветовал выставить доступ на /uploads/ 777. Сделал. Результат - 0.
Потом он посоветовал перемещенный файл также сохранять в /tmp/, а не в /uploads/. Попробовал. Сообщение об ошибке пропало, но в /tmp/ файла нет. Насколько я помню move_uploaded_file() за собой во временной папке подтирает.
Ради смеха попробовал использовать под загрузку все папки, которые мне хостер дал в корне по умолчанию. Функция их не видит ни одной, кроме /etc, по отношению к которой выдается ошибка, что доступ закрыт.
Кстати, аналогичная ситуация и с функцией copy().
Код:
PHP:
// помещаем файл туда, куда нужно
$upfile = '/uploads/' .$_FILES['attach_file']['name'];
if ($_FILES['attach_file']['tmp_name'])
{
if (!move_uploaded_file($_FILES['attach_file']['tmp_name'], $upfile))
{
echo "<div align='center'>Проблема: невозможно переместить файл в каталог назначения";
require ('bottom.inc');
exit;
}
}