Я изучаю книгу О'Рейли «Изучение PHP и MySQL», 2-е изд. Микеле Дэвис и Джон Филлипс.
Я застрял на примере 11-28. Цель состоит в том, чтобы загрузить изображение и переместить его из /tmp
в папку для загрузки, если оно удовлетворяет определенным условиям: размеру файла, типу и тому, был ли он загружен. Это хранится на моем домашнем сервере Ubuntu.
Форма здесь , а код здесь . Трудно заставить его появиться.
Когда я нажимаю кнопку отправки без файла в окне файла, я получаю следующее предупреждение:
Warning: unlink() [function.unlink]: No such file or directory in /home/luna/public_html/learn_php/up_urs.php on line 10
Когда я отправляю файл больше maxsize
, я получаю сообщение об ошибке:
Error. File must be less than 28480 bytes.
Когда я отправляю файл неправильного типа, я получаю сообщение об ошибке:
You may only upload .gif & .jpg files.
Когда я отправляю файл правильного типа и размера, я получаю следующее предупреждение и мое сообщение ОК:
Warning: move_uploaded_file(learn_php/uploads/) [function.move-uploaded-file]: failed to open stream: No such file or directory in /home/luna/public_html/learn_php/up_urs.php on line 21
Warning: move_uploaded_file() [function.move-uploaded-file]: Unable to move '/tmp/php4Mhykl' to 'learn_php/uploads/' in /home/luna/public_html/learn_php/up_urs.php on line 21
Thanks for your upload.
Что я пробовал:
- Я думал, что проблема была в разрешениях, но изменение каталога
learn_php
на 777 не имело значения, поэтому я изменил его обратно на 755.
- Изменение пути с «загрузки» на
/home/luna/public_html/learn_php/uploads
- Использование
getcwd()
до и после команд unlink & move_uploaded_file
, но это только сказало мне, что я был в learn_php...
- Я пытался раскомментировать
//print_r($_FILES);
, но мне ничего не показывалось после нажатия кнопки Отправить.
Не уверен, что искать сейчас. Спасибо за любую помощь:)