1

我有一个删除文件的 PHP 脚本。它可以从我的根目录中删除文件,但是当我尝试从子目录中删除时,它会显示“权限被拒绝”。我知道该文件存在并且 PHP 可以访问它,因为我可以读取和写入该文件,但我不能删除它。为什么?

编辑:如果这是相关的,我正在使用 Zymic 托管。但我在 Zymic 上有另一个站点,删除工作正常。我不明白...

编辑:我使用 ajax 访问带有要删除的代码的 PHP 文件,并且 ajax 发送要删除的文件名。我知道它发送的文件名是正确的,因为警告消息会为我打印它。PHP 代码很简单:

$file=$_POST['file'];
echo unlink($file);

编辑:我修好了!我不知道为什么会这样,但我 FTP 将目录从 755 更改为 775 谁能告诉我为什么会这样?

4

3 回答 3

4

要删除您需要对包含它的文件夹具有写入权限的文件,请先检查该文件。

CHMOD xxx -> 所有者组 其他

第一种情况:755 - Owner(读取、写入、执行)、Group(读取、执行)、Other(读取、执行)

第二种情况:775 - Owner(读取、写入、执行)、Group(读取、写入、执行)、Other(读取、执行)

于 2012-05-04T22:18:29.237 回答
1

尝试在您正在运行的脚本的开头添加它:

error_reporting(E_ALL | E_STRICT);

那应该能够准确指出发生了什么,可能是您没有写入文件夹的权限

特别是如果您在 Linux 环境中工作。在 Linux 中,一切都是文件,甚至是文件夹。在删除文件时,您需要能够写入代表文件夹的文件,这就是为什么有权写入您要删除的文件与删除它没有任何关系。

于 2012-05-04T22:39:35.140 回答
1

在使用 unlink($myfile) 之前,您必须先 fclose($myfile),因为如果它在服务器上被任何人打开,它不会删除它。还要将此脚本与您要删除的文件放在同一目录中,否则您可能会不小心删除整个 DIR。

于 2012-11-09T04:45:32.917 回答