文件权限 – 访问被拒绝

我正在PHP中的应用程序,我必须testing某些目录(可以说“abc”文件夹)的文件权限,我必须dynamic地创build一个新的文件,可以说目录“xyz”中的“文件”..我想“abc “要通过web服务器(即666)可读可写,并且为了能够在目录”xyz“中创build文件,我正在检查它是否可读可写模式(即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]:无法打开stream:权限被拒绝

正如我所说的C:\ inetpub \ wwwroot文件的权限是777 ..最初file.php不存在,但fopen将创build它..不是吗? 而且,如果它不会,我怎样才能dynamic创build文件?

任何帮助?

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

如果文件不存在,将不会创建该文件。 要创建你需要使用的文件

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

要么

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

参考这个

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

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

  • 右键单击该文件
  • 点击“属性”
  • 点击“安全”标签
  • 找到用户:“互联网来宾帐户”
  • 设置必要的权限

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