文件权限 - 访问被拒绝

时间:2011-02-10 09:54:34

标签: php windows file

我在php中创建一个应用程序,我必须测试某些目录(比如说“abc”文件夹)文件权限,我必须动态创建一个新文件,让我们在目录“xyz”中说“file”..我希望“abc”可以被webserver(即666)读写,并且为了能够在目录“xyz”中创建文件,我也检查它是否可读写模式(即666)......这就是它版画 xyz目录 - 777 abc目录 - 777

但是当我尝试

$data = 'Some file data';
                        $fh = fopen($rootdir."\\file.php","r+");
                        if ( !fwrite($fh,$data))
                        {
                        //echo $rootdir;
                        echo 'Unable to write the file';
                        }
                        else
                        {
                        echo 'File written!';
                        }
                        fclose($fh);

$ rootdir包含文件夹“xyz”的地址...它显示以下错误

消息:fopen(C:\ inetpub \ wwwroot \ file.php)[function.fopen]:无法打开流:权限被拒绝

正如我所说的C:\ inetpub \ wwwroot文件权限是777 ..而且最初file.php不存在但是fopen会创建它..不是吗?万一它不会,我怎么能动态创建文件?

有任何帮助吗?

2 个答案:

答案 0 :(得分:1)

$fh = fopen($rootdir."\\file.php","r+");;
如果文件不存在,

将不会创建该文件。 要创建文件,您需要使用

$fh = fopen($rootdir."\\file.php","w");

或者

$fh = fopen($rootdir."\\file.php","w+");

请参阅此this

答案 1 :(得分:0)

Windows / NTFS使用ACL来获取文件权限。

在文件属性对话框“安全”选项卡中,您需要为用户提供“Internet访客帐户([something] / IUSR_ [something])”写访问权限或完全权限。你做到了吗?

  • 右键单击文件
  • 点击“属性”
  • 点击“安全”标签
  • 找到用户:“Internet Guest Account”
  • 设置必要的权限

如果您希望IIS能够创建文件,您需要确保在文件夹上正确设置了这些ACL。