我正在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。