Chmod 666和访问被拒绝为getimagesize

时间:2011-10-18 00:40:36

标签: php chmod permission-denied

首先,这不是重复:Permission denied on getimagesize

我得到了以下代码,我为图像坐了chmod,然后我不想得到它的大小。

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

但如果我设置chmod,我收到此错误消息:

  

无法打开流:[...]

中的权限被拒绝

有什么问题?所有文件和目录都具有相同的组和所有者 - www-data

3 个答案:

答案 0 :(得分:2)

尝试放置/之前的路径。不确定php,但我知道python不会添加初始/到某些路径操作,所以它可能正在寻找绝对的相对路径instad:

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

答案 1 :(得分:1)

首先,如果chmod(假设是您的网络服务器的用户)没有www-data,那么$path将不会成功(权限将被拒绝;或许您得到的错误来自chmod?)具有对目录www-data的写访问权。确保$path$path 的所有家长以及 chmod 的写入权限具有读取权限。

另外,请确保在getimagesize和{{1}}中使用绝对路径。

答案 2 :(得分:1)

实际上你真的需要在getimagesize之前使用chmod吗?

如果是这样,也许你可以尝试在chmod之前放入umask。 这样的事情?

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