【问题标题】:Apache/PHP/JS - Cannot change file permissions from 0644 to 0777Apache/PHP/JS - 无法将文件权限从 0644 更改为 0777
【发布时间】:2012-05-17 04:03:38
【问题描述】:

我在我的网站 (https://github.com/blueimp/jQuery-File-Upload) 上使用 blueimp 文件上传器。

在我的本地机器 (WAMP) 上上传的文件可以轻松删除。

在我的在线服务器 (LAMP) 上,无法删除文件 - 返回 403 禁止。并且所有文件的权限都设置为0644。

我尝试通过 FileZilla 手动更改这些(得到 550 无法更改权限错误)。我还尝试通过 cPanel 文件管理器进行操作(只是没有发生更改)。

有人知道为什么会这样吗?可以在上传开始之前使用 PHP/JS 设置所需的权限吗?

为什么我不能更改我拥有的文件的权限?我拥有服务器和文件。

如果问题表述不理想,我们深表歉意。

【问题讨论】:

    标签: php javascript apache file-upload file-permissions


    【解决方案1】:

    使用基于本地 (Windows) 的服务器 - 您是管理员 - 您可以删除任何文件。

    在 Linux 服务器上,它们作为网络服务器的所有者上传(可能类似于“www-data”) - 但您没有该权限。从 PHP 脚本设置权限是可行的,因为它们以与上传文件相同的用户身份运行。

    【讨论】:

    • 谢谢,知道怎么做吗?我尝试在上传类 (github.com/blueimp/jQuery-File-Upload/blob/master/server/php/…) 的 fopen 中将模式从“r”更改为“w+”,但没有结果。任何指导或链接表示赞赏。
    • 'fopen' 是关于写入文件的(并且由于您正在写入,因此它需要正在写入)。 php.net/chmod 将更改文件模式(更改权限)。请阅读有关使权限过于宽松的安全问题。从长远来看,让脚本删除不再需要的文件本身可能很有用。不要忘记标记/接受答案。
    • 非常感谢。很抱歉再问,但我将如何将此应用于尚未上传的文件?我尝试在 move_uploaded_file 之前立即执行 chmod,但没有成功。 chmod($uploaded_file, 777);move_uploaded_file($uploaded_file, $file_path);
    • 您不能对不存在的文件进行 chmod。将其放置到位,然后更改其权限。
    • 这对我有用:move_uploaded_file($uploaded_file, $file_path); chmod($file_path, 0777);
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-03-09
    • 2013-04-08
    • 2015-05-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多