2

我的脚本创建一个图像并将其保存在服务器上。之后它将其文件权限更改为 644,以便其他用户可以读取图像:

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

对图像的引用将包含在另一个脚本中,该脚本允许我添加缓存标头。本质上,第二个脚本添加了一些标头,然后将文件的内容写入输出流:

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,即八进制的 101204。通过 ftp 我可以验证实际文件权限(对于 ftp 用户)是 644。

图片的fileowner()是一个 4 位用户名的用户,而get_current_user()脚本的 是我的 ftp 帐户。

我可以通过浏览器直接访问图像。只有脚本无法访问它。

如何启用文件的脚本访问?

4

0 回答 0