【问题标题】:can't get PHP unlink() to work无法让 PHP unlink() 工作
【发布时间】:2015-11-24 16:32:29
【问题描述】:

我一直在尝试使用 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>";
}

【问题讨论】:

  • 您确定要在正确的文件夹中查找正确的文件?
  • 将错误报告添加到文件顶部,紧跟在您的打开 PHP 标记之后,例如 &lt;?php error_reporting(E_ALL); ini_set('display_errors', 1);,然后是其余代码,看看它是否会产生任何结果。
  • 令人难以置信的另一双眼睛能做什么!我的文件夹 files/image 不正确。它应该是文件/图像

标签: php unlink


【解决方案1】:

要么是路径问题,要么是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()

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-05-06
    • 2011-04-26
    • 1970-01-01
    • 1970-01-01
    • 2016-07-11
    • 2017-04-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多