Я не могу выполнить загрузку php. PHP 5.4.45 Centos 6.7. Apache 2.2.27.PHP move_uploaded_file() FAILS без причины
У меня есть HTML-файл:
<form enctype="multipart/form-data" action="test2.php" method="POST">
Send this file: <input name="userfile" type="file" />
<input type="submit" value="Send File" name="submit"/>
</form>
И у меня есть PHP файл:
<?php
$uploaddir = '/home/michael/public_html/forum/files/';
$uploadfile = $uploaddir . basename($_FILES['userfile']['name']);
echo '<pre>';
if (move_uploaded_file($_FILES['userfile']['tmp_name'], $uploadfile)) {
echo "File is valid, and was successfully uploaded.\n";
} else {
echo "Error!\n";
}
echo 'Here is some more debugging info:';
print_r($_FILES);
print "</pre>";
?>
Когда я запускаю его я получаю:
Error!
Here is some more debugging info:Array
(
[userfile] => Array
(
[name] => 184958.jpg
[type] => image/jpeg
[tmp_name] => /tmp/phpupab11
[error] => 0
[size] => 1473603
)
)
И файл не перемещается на новое место. Вместо этого я получаю файл с 0-значным именем с таким же именем в новом месте.
-rw-r--r-- 1 michael michael 0 Apr 5 16:33 184958.jpg
журнал сервера отмечает ошибку:
[error] [client xx.xx.xx.xx] PHP Warning: move_uploaded_file():
Unable to move '/tmp/phpupab11' to '/home/michael/public_html/forum/files/184958.jpg'
in /home/michael/public_html/forum/test2.php on line 9
Кажется, что файл загружен хорошо/TMP реж, но не может быть перемещен в другое место. Насколько я читал, это проблема разрешения. Но разрешение папки «файлов» является, кажется, хорошо - 777 (с владельцем Михаэля = имя пользователя):
drwxrwxrwx 2 michael michael 1216512 Apr 5 13:16 files
Как PHP переменные:
post_max_size 20M
upload_max_filesize 20M
upload_tmp_dir /tmp
file_uploads On
memory_limit 1024M
Я бы рад получить некоторую помощь или, по крайней мере, направление искать решение проблемы. Спасибо.
PS Тот же самый код работает на другом сервере, прежде чем я переехал. – Shmuel
насчет' forum' разрешение на папку? – mitkosoft
Проверьте, есть ли у вас предупреждение на php. Активируйте все журналы, как здесь: http://stackoverflow.com/questions/1053424/how-do-i-get-php-errors-to-display Если вы не знаете, t есть предупреждение, означающее, что первый параметр недействителен. Проверьте здесь: http://php.net/manual/en/function.move-uploaded-file.php –