已创建文件的访问被拒绝

时间:2012-08-26 17:59:09

标签: php permissions chmod

我的脚本会创建一个图像并将其保存在服务器上。之后,它将其文件权限更改为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帐户。

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

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

0 个答案:

没有答案