无法让PHP unlink()工作

时间:2015-08-30 14:41:22

标签: php unlink

我一直在尝试使用PHP从我的Apache服务器上的图像文件目录中删除图像文件。我无法让它发挥作用。我一直收到消息“已成功删除”,但当我检查图像文件时,它仍然存在。我怀疑该目录不允许我访问取消链接文件。但我失去了如何告诉服务器允许我取消链接图像文件目录中的文件。我在MacBook Air上运行XAMMP(Apache服务器)。这是我的代码:

// DELETE THE PREVIOUS IMAGE FILE TO KEEP DISC USE TO A MINIMUM
$old_image_file = $_SESSION['previous_value']; // IMAGE FILE TO BE DELETED
echo "<p>old_image_file = ".$old_image_file."</p>";

// NAME IMAGE FILE TO BE DELETED AND INDICATE IN WHICH FOLDER IT SITS
$filename_to_be_deleted = '/files/image/'.$old_image_file;
echo "<p>$filename_to_be_deleted = ".$filename_to_be_deleted."</p>";

// CHECK IF FILE EXISTS BEFORE DELETING IT
if (file_exists($filename_to_be_deleted))
{
    unlink(realpath($filename_to_be_deleted)); // DELETE THE FILENAME
} 
// CHECK IF FILE STILL EXISTS OR NOT
if (file_exists($filename_to_be_deleted))
{
    echo "<p>File was not deleted! " . $filename_to_be_deleted."</p>";
} 
else
{
    echo "<p>Successfully deleted " . $filename_to_be_deleted."</p>";
}

1 个答案:

答案 0 :(得分:3)

这是路径或CHMOD问题,让我们找出答案。

使用以下内容检查unlink结果

echo unlink(realpath($filename_to_be_deleted)); //returns true or false

如果返回true,请执行以下操作,您应该看到差异

echo realpath($filename_to_be_deleted);
echo $filename_to_be_deleted;

如果返回false,请确保将包含目录的CHMOD设置为允许删除文件。

编辑:当然,请按照 Fred -ii - 的建议使用error_reporting()