2016-04-05 63 views
2

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 

Serverログにエラーがノート:

[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 

私はいくつかの助けまたは少なくとも方向性を得るために喜んだろう問題を解決するために探します。 ありがとうございます。

+0

私が移動する前に、同じコードを別のサーバーに取り組んでいたPS。 – Shmuel

+0

何forum' 'についてフォルダの権限? – mitkosoft

+0

PHPで警告があるかどうかを確認するここのようなすべてのログを有効にする:http://stackoverflow.com/questions/1053424/how-do-i-get-php-errors-to-displayもし、最初のパラメータが無効であるという警告が表示されます。http://php.net/manual/en/function.move-uploaded-file.php –

答えて

0

問題は解決されませんでした。 /homeの下のフォルダがアップロードされたファイルを受信できませんでした。パーミッション/所有権の変更は役に立ちませんでした。とにかく、回避策が見つかった。 理想的ではありませんが、安全ではありませんが、うまく動作します。私はその奇妙な行動の理由を見つけるまで十分です。 私はroot dir(/ files_of_forum)と権限(michael:michael 777)にフォルダを作成し、添付ファイルのdirを元の "files"から "../../../ .."に変更しました。 /新しいものに元のフォルダからすべてのファイルを移動しました。 files_of_forumは」今すべての作品。 を助けようとしたものをすべてに感謝します。

0

ファイル所有者は、Webサーバーが実行されているプロセスである必要があります。apacheファイルを、書き込み権限を持つapacheが所有するように設定します。

+0

何も変更されていません。試してみた:誰も、apache:apache、michael:michael ...同じ結果。ルートディレクトリ内のフォルダのみが動作します。 – Shmuel

関連する問題