【问题标题】:PHP: Why is chmod() setting my file/folder to 555 or 444?PHP:为什么 chmod() 将我的文件/文件夹设置为 555 或 444?
【发布时间】:2016-10-04 01:37:23
【问题描述】:

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

(旁注:我正在使用 WAMP 运行本地)

所以一开始,我是用这个来读取权限的

substr(sprintf('%o', fileperms($relativePath)), -4)

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

但是,当我运行脚本时,我将其设置为 0777,它似乎运行良好。但是当我再次读取文件时,它返回 0555 或 0444。有人知道我缺少什么吗?

【问题讨论】:

  • 这和javascript有什么关系?
  • 我添加了 JavaScript,因为这是我用来发出请求的。想如果有人有相同的设置,它会在搜索时有所帮助。

标签: php permissions chmod


【解决方案1】:

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

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

    • 我实际上在PHP端有一个非常相似的设置......问题不在于它是否成功,而是一旦我处理将perm更改为777的请求并读取文件再次使用我上面提供的代码 sn-p,它返回 555 或 444。
    猜你喜欢
    • 2017-02-25
    • 2017-01-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-06
    相关资源
    最近更新 更多