Проблема с загрузкой PHP - PullRequest
       5

Проблема с загрузкой PHP

3 голосов
/ 10 августа 2011

У меня проблема с загрузкой php, у меня следующий код:

define('GW_UPLOADPATH', '/var/www/train/ch5/images/');
$name = $_POST['name'];
$score = $_POST['score'];
$screenshot = $_FILES['screenshot']['name'];

$target = GW_UPLOADPATH.$screenshot;
echo $_FILES['screenshot']['tmp_name'].'<br/>';
move_uploaded_file($_FILES['screenshot']['tmp_name'], $targe)
or die("Upload Error!");

Я получаю ошибку загрузки!Временный файл, в который загружается файл:

/ tmp / php9Khayp

, но в / tmp я не могу найти этот файл.Я работаю над Ubuntu 10.10.Может кто-нибудь сказать мне, где проблема?

apache error.log: [Wed Aug 10 20:54:17 2011] [error] [client ::1] PHP Warning: move_uploaded_file(/var/www/train/ch5/images/phizsscore.gif): failed to open stream: Permission denied in /var/www/train/ch5/addscore.php on line 22, referer: <a href="http://localhost/train/ch5/addscore.php" rel="nofollow">http://localhost/train/ch5/addscore.php</a> [Wed Aug 10 20:54:17 2011] [error] [client ::1] PHP Warning: move_uploaded_file(): Unable to move '/tmp/phpmkZEr3' to '/var/www/train/ch5/images/phizsscore.gif' in /var/www/train/ch5/addscore.php on line 22, referer: <a href="http://localhost/train/ch5/addscore.php" rel="nofollow">http://localhost/train/ch5/addscore.php</a> [Wed Aug 10 20:54:18 2011] [error] [client ::1] File does not exist: /var/www/favicon.ico

Ответы [ 2 ]

4 голосов
/ 10 августа 2011

У вас есть опечатка. $targe должно быть $target.

move_uploaded_file($_FILES['screenshot']['tmp_name'], $targe)
                ---------------------------------------^^^^^^

В противном случае вы никогда не сможете увидеть файл в /tmp, потому что он сохраняется только на протяжении всего времени жизни сценария PHP. Как только выполнение скрипта завершится, файл будет очищен. Вы не сможете получить к нему доступ на диске после завершения сценария, если не будет выполнен успешный вызов move_uploaded_file().

UPDATE

Если переменная $target не является проблемой, убедитесь, что пользователь веб-сервера Apache (возможно, www-data, httpd, apache) имеет доступ на запись к вашей цели /var/www/train/ch5/images/:

# assuming the Apache user is apache...
sudo chown root:apache /var/www/train/ch5/images/
sudo chmod g+rwx /var/www/train/ch5/images/
2 голосов
/ 10 августа 2011

Имеет ли ваш код разрешение на запись файлов в / tmp?

В журналах ошибок apache говорится что-нибудь?

...