我一直在尝试使用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>";
}
答案 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()
。