PHP:为什么chmod()将我的文件/文件夹设置为555或444?

时间:2016-06-03 21:24:20

标签: php permissions chmod

我使用文件浏览器创建了一个Web应用程序。我尝试添加一项功能,用户可以通过后端通过PHP处理的ajax请求更改 chmod / permissions

(旁注:我在WAMP上运行我的本地)

所以最初,我用这个

读取权限
substr(sprintf('%o', fileperms($relativePath)), -4)

获取此格式(0777,0644等),如果不是,则返回类似32726的内容。此信息用于在UI中显示,以便用户了解当前的信息。

但是,当我运行脚本时,我将其设置为0777,它似乎运行正常。但是当我再次阅读该文件时,它会返回0555或0444.任何人都知道我错过了什么?

2 个答案:

答案 0 :(得分:0)

您的网络服务器是否拥有尝试更改权限的文件?您可以通过测试其返回值来检查chmod是正确运行还是失败。如果网络服务器没有权限,它将返回FALSE。有关详细信息,请参阅:http://php.net/manual/en/function.chmod.php

<?php 

$is_success = chmod("myfile.pdf", 777);
if($is_sucess) {
     echo "success<br />\n";
}

答案 1 :(得分:0)

我意识到这不是问题,而是chmod命令在windows / apache设置上无法正常工作。