如何修复文件权限(和所有者/组)以便删除php上传的文件?

时间:2011-07-15 23:11:25

标签: php file permissions upload

我有一个脚本将文件上传到文件权限为0644的目录。我无法通过FTP或使用PHP的unlink()函数删除文件(550错误)。在搜索网页后,我无法找到解决此问题的方法。我知道该问题与群组/所有者权限有关,但我不知道如何解决问题。

我应该使用copy()还是重命名()?

有什么想法吗?

编辑:所有上传的文件都将所有者/组设置为:48 48.我通过FTP而非PHP脚本上传的所有其他文件均为1006 1006.所有者/组是否已设置为不正确的用户? 我已经尝试使用chmod()将权限设置为0666.我认为问题可能出在用户身上?

编辑2:我应该使用exec()并运行更改文件所有者和组的命令吗?

3 个答案:

答案 0 :(得分:0)

这取决于您的脚本运行的用户。尝试将文件上传为0655而不是

答案 1 :(得分:0)

如果您正在使用move_uploaded_file();功能,则权限设置正确,因此unlink();应该工作

试试这个

move_uploaded_file($from, $to);
chmod($to, 0666);

答案 2 :(得分:0)

您需要拥有删除文件的写入权限。 6表示读/写。零后面的第一个数字表示文件的所有者,谁创建了它。如果您正在运行脚本来创建文件,只要您使用相同的用户(可能是服务器用户),您就应该能够删除它。