我在图片夹中有图像 当我试图通过此功能删除它
function delete_item()
{
$query = 'SELECT logo FROM entity WHERE id='.$_GET['id'];
$res = mysql_query( $query );
$item = mysql_fetch_array( $res );
$file=basename($item['logo']);
$op_dir=opendir('./img');
while($file=readdir($op_dir ))
{
if($file != "." && $file != "..")
{
unlink ($op_dir.'/'.$file);
}
else {
echo 'no';
}
}
closedir($op_dir);
}
需要错误
Warning: unlink(Resource id #8/image.jpg) [function.unlink]: No such file or directory in
图片位于example.com/img/f1.jpeg
代码中的我使用$ op_dir = opendir('./ img'); 但获得资源而不是路径
所以问题:如何获取图像的链接或路径,而不是资源?
答案 0 :(得分:0)
$op_dir
是您的目录句柄,$file
是您在循环中覆盖的文件名。您应该为readdir()
使用的目录使用不同的名称,并在尝试删除文件时使用该名称而不是目录句柄,例如:
while($dir=readdir($op_dir ))
{
if($file != "." && $file != "..")
{
unlink ($dir.'/'.$file);
}
else
{
echo 'no';
}
}
你应该切换到PDO或mysqli并使用预准备语句来避免sql注入,但这与你当前的问题无关。