質問

まず第一に、これは次のものの複製ではありません。 getimagesize でアクセス許可が拒否されました

次のコードを取得しました。 chmod 画像の場合、そのサイズを取得したくありません。

@chmod($path."/".$filename, '0666');
getimagesize($path . "/" . $filename);

しかし、chmod を設定すると、次のエラー メッセージが表示されます。

ストリームを開くことに失敗しました:許可が拒否されました[...]

何が問題ですか?すべてのファイルとディレクトリは同じグループと所有者を持ちます - www-data.

役に立ちましたか?

解決

実際のところ、本当に getimagesize の前に chmod する必要があるのでしょうか?

もしそうなら、chmod の前に umask を入れてみてはいかがでしょうか。このようなもの?

$old = umask(0); 
chmod($path,0777);
umask($old);

他のヒント

パスの前に / を入れてみてください。phpについてはわかりませんが、Pythonは特定のパス操作に最初の/を追加しないことはわかっているため、絶対パスではなく相対パスを探している可能性があります。

@chmod("/". $path."/".$filename, '0666');
getimagesize("/". $path . "/" . $filename);

初めに、 chmod 成功しません (許可は拒否されます。おそらく、表示されるエラーは chmod からのものでしょうか?) www-data (それが Web サーバーのユーザーであると仮定して) ディレクトリへの書き込みアクセス権がありません $path. 。確保する www-data もっている すべての親ディレクトリへの読み取り許可 $path そして への書き込み許可 $path.

また、どちらの場合も必ず絶対パスを使用してください。 chmod そして getimagesize.

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top