从PHP中的文件夹中删除图像,如何获取路径?

时间:2014-08-17 18:43:53

标签: php image path

我在图片夹中有图像 当我试图通过此功能删除它

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'); 但获得资源而不是路径

所以问题:如何获取图像的链接或路径,而不是资源?

1 个答案:

答案 0 :(得分:0)

$op_dir是您的目录句柄,$file是您在循环中覆盖的文件名。您应该为readdir()使用的目录使用不同的名称,并在尝试删除文件时使用该名称而不是目录句柄,例如:

while($dir=readdir($op_dir ))
{
     if($file != "." && $file != "..") 
     {
       unlink ($dir.'/'.$file);
     }
     else
     {
       echo 'no';
     }
}

你应该切换到PDO或mysqli并使用预准备语句来避免sql注入,但这与你当前的问题无关。