2011-11-13 12 views
0

POSTでこのページにアップロードされたファイルで次のコードを実行しています。PHPサーバーにファイルをアップロードした後のアクセス許可が正しくありません

$newname = "images/".$name.".".pathinfo($_FILES["file"]["name"], PATHINFO_EXTENSION); 

//Copy the file from its temporary location to its real location. 
if (file_exists("images/".$name)) 
    throw new Exception("images/".$name." already exists."); 

move_uploaded_file($_FILES["file"]["tmp_name"], $newname); 
echo "Stored in: ".$newname."<BR />"; 

ファイルは、Webサーバー上の正しい場所に表示され、正しいサイズです。 「...ファイルの場所にアクセスするための正しいアクセス権がありません」と表示されても、私はそれを表示しようとします。

私はローカルのApache Webサーバーでこれをテストしていますが、このサイトのすべてのファイルは同じフォルダにあります(アップロードされた画像はそのフォルダ内の/ imagesフォルダに保持されますが、それは助けになりませんでした)。

私は間違って何をしていますか、この権限の問題をどのようにして停止して、アップロード直後にファイルを見ることができますか?

私は管理者に自分の権限を上げる場合は、ファイルにアクセスして、ファイルに通常のユーザーのために設定された権限を与えることができます

EDIT。

ファイルがアップロードされた後、すべてのユーザーのアクセス許可を変更するために以下の回答に示唆されているようにchmodを使用しようとしましたが、うまくいかないようです。

Webサーバーでは本当に必要なイメージを引き続き使用できるため、これは大きな問題ではありませんが、私のテスト環境を少し簡略化するために管理者権限なしで表示できるようにしたいと考えています。だから、任意の更なる提案は大歓迎されている:)

+1

ファイルはどこに保存されていますか?管理者権限を持っていない可能性があります。 –

+0

申し訳ありませんが、私はそれを言及すべきでした。それは私の家のラップトップです。私は唯一のアカウントしか持っておらず、管理者アカウントです。ファイルは、私のApache Webサーバールート内のフォルダに格納されています。 –

+0

これらのファイルにどのくらい正確にアクセスしていますか?あなたのアカウントが管理者であるかどうかは関係ありません.Windowsはデフォルトで管理者以外の権限で実行されるため、権限が必要な場合は権限を与えるように求められます。 (いくつかの実行ファイルを実行するときは、選択肢はありません。) –

答えて

1

てみランニングを:

echo(fileperms($newname)); 

それが例えば、アップロードされた後にファイルのchmodの設定のオクタル値を取得するには彼らはあまりにも低く設定されている場合0755

あなたが使用することができます。

chmod($newname, 0755); 

は、あなたがそれらを表示することができます何かにそれらを設定します。

+0

+1努力のために:) –

+0

@ w00te感謝私も何かを学んだ:) –

+0

ああ、私はそれを周り、これは最高の答えだったので、楽しむ;) –