成功后收到unlink()错误

时间:2015-05-08 17:22:33

标签: php runtime-error unlink

这可能是一个非常愚蠢的问题,但是在代码成功删除文件后我得到以下错误,我无法解决原因,代码非常简单,它获取要删除的文件的名称和路径从数据库中删除它。

代码:

$getFiles = mysql_query("SELECT * FROM tempFiles WHERE pTID='$passedId'");
$numFiles = mysql_num_rows($getFiles);

for ($f=0;$f<$numFiles;$f++) {

    $fileName = mysql_result($getFiles,$f,"fileName");
    $deleteFile = "../../".$fileName;
    unlink($deleteFile);

}

警告:取消链接(../../ files / projects / files / 643115.jpg):没有这样的文件或目录

删除文件的脚本位于scripts / php / thefile中,文件位于files / projects / files / thefile中,因此绝对需要../../而不是问题。告诉。我知道该文件正在被成功删除,因为在我运行脚本后它不再在文件夹中,因此我不知道是什么原因导致了错误。

我可能会收到错误的任何想法?

提前谢谢。

1 个答案:

答案 0 :(得分:2)

错误的可能原因:

  • tempFiles表中有多条记录与fileName相同,因此第一次尝试将其删除,第二次尝试会导致错误。
  • 运行脚本时文件夹中不存在该文件(如@AxelAmthor评论时所述)

要解决这个问题,只需添加验证(如@Sammitch评论时所述):

if (is_file($deleteFile)) {
    unlink($deleteFile);
}