PHP:为什么 chmod() 将我的 file/folder 设置为 555 或 444?
PHP: Why is chmod() setting my file/folder to 555 or 444?
我创建了一个带有文件浏览器的网络应用程序。我正在尝试添加一个功能,用户可以通过 ajax 请求更改 chmod/permissions,该请求通过背面的 PHP 处理 -结束。
(旁注:我正在 运行使用 WAMP 连接本地)
所以最初,我正在阅读权限
substr(sprintf('%o', fileperms($relativePath)), -4)
获取此格式(0777、0644 等),如果不是 returns 类似 32726 的格式。此信息用于显示在 UI 中,以便用户了解最新信息.
但是,当我 运行 脚本时,我将它设置为 0777,它似乎 运行 没问题。但是当我再次阅读文件时,它 returns 0555 或 0444。有人知道我错过了什么吗?
您的网络服务器是否拥有它试图更改权限的文件?您可以通过测试其 return 值来检查 chmod 运行 是否正确或失败。如果网络服务器没有权限,它将 return FALSE。更多信息您可以阅读:http://php.net/manual/en/function.chmod.php
<?php
$is_success = chmod("myfile.pdf", 777);
if($is_sucess) {
echo "success<br />\n";
}
我意识到这不是问题,而是 chmod
命令在 windows/apache 设置中无法正常工作。
我创建了一个带有文件浏览器的网络应用程序。我正在尝试添加一个功能,用户可以通过 ajax 请求更改 chmod/permissions,该请求通过背面的 PHP 处理 -结束。
(旁注:我正在 运行使用 WAMP 连接本地)
所以最初,我正在阅读权限
substr(sprintf('%o', fileperms($relativePath)), -4)
获取此格式(0777、0644 等),如果不是 returns 类似 32726 的格式。此信息用于显示在 UI 中,以便用户了解最新信息.
但是,当我 运行 脚本时,我将它设置为 0777,它似乎 运行 没问题。但是当我再次阅读文件时,它 returns 0555 或 0444。有人知道我错过了什么吗?
您的网络服务器是否拥有它试图更改权限的文件?您可以通过测试其 return 值来检查 chmod 运行 是否正确或失败。如果网络服务器没有权限,它将 return FALSE。更多信息您可以阅读:http://php.net/manual/en/function.chmod.php
<?php
$is_success = chmod("myfile.pdf", 777);
if($is_sucess) {
echo "success<br />\n";
}
我意识到这不是问题,而是 chmod
命令在 windows/apache 设置中无法正常工作。