2

私のスクリプトは画像を作成し、サーバーに保存します。その後、ファイルのパーミッションを 644 に変更し、他のユーザーがイメージを読み取れるようにします。

imagejpeg($myImage, $savePath);
chmod($savePath, 0644); 

画像への参照は、キャッシング ヘッダーを追加できる別のスクリプトでラップされます。基本的に、この 2 番目のスクリプトはいくつかのヘッダーを追加してから、ファイルのコンテンツを出力ストリームに書き込みます。

header("HTTP/1.1 200 OK");
//... caching headers
header("Content-Type: image/jpeg");
header("Content-Length: $Size");
readfile($ImageFile);

ただし、これによりパーミッション エラーが発生します。

Warning:  readfile(...) [function.readfile]: failed to open stream: Permission denied in /.../showImage.php on line 20

行 20 は、readfile()呼び出しを含む行です。

への呼び出しfileperms($ImageFile)は 33412 を返します。これは 8 進数で 101204 です。ftp 経由で、(ftp ユーザーの) 実際のファイル許可が 644 であることを確認できます。

画像のfileowner()は 4 桁のユーザー名を持つユーザーでget_current_user()、スクリプトの は私の ftp アカウントです。

ブラウザから直接画像にアクセスできます。スクリプトのみがアクセスできません。

ファイルのスクリプト アクセスを有効にするにはどうすればよいですか?

4

0 に答える 0