这可能是一个非常愚蠢的问题,但是在代码成功删除文件后我得到以下错误,我无法解决原因,代码非常简单,它获取要删除的文件的名称和路径从数据库中删除它。
代码:
$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中,因此绝对需要../../而不是问题。告诉。我知道该文件正在被成功删除,因为在我运行脚本后它不再在文件夹中,因此我不知道是什么原因导致了错误。
我可能会收到错误的任何想法?
提前谢谢。
答案 0 :(得分:2)
错误的可能原因:
tempFiles
表中有多条记录与fileName
相同,因此第一次尝试将其删除,第二次尝试会导致错误。要解决这个问题,只需添加验证(如@Sammitch评论时所述):
if (is_file($deleteFile)) {
unlink($deleteFile);
}