1

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

我得到了以下代码,我在其中chmod放置了图像,然后我不想得到它的大小。

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

但是,如果我设置了 chmod,我会收到以下错误消息:

无法打开流:权限被拒绝 [...]

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

4

3 回答 3

2

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

@chmod("/". $path."/".$filename, '0666');
getimagesize("/". $path . "/" . $filename);
于 2011-10-18T00:48:24.453 回答
1

首先,如果(假设是您的网络服务器的用户)没有对目录的写入权限,chmod则不会成功(权限将被拒绝;也许您得到的错误来自 chmod?)。确保对 .的所有父目录具有读取权限和.www-data$pathwww-data$path$path

此外,请确保您使用绝对路径,无论是 inchmod还是getimagesize.

于 2011-10-18T00:43:37.213 回答
1

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

如果是这样,也许您可​​以尝试将 umask 放在 chmod 之前。像这样的东西?

$old = umask(0); 
chmod($path,0777);
umask($old);
于 2011-10-18T04:05:32.723 回答