2014-05-18 44 views
-1

我删除图像,我在我的表“横幅”,我的SQL删除工作正常。奇怪的问题试图取消链接()我的图片

但我也想从文件夹中删除我的图片,所以我使用unlink()来达到这个目的。

但它不工作,图像将从数据库中删除,但不要从文件夹中删除。

我真的不明白为什么会发生这种情况,因为目录是正确的!

在这里,我有我的动作链接删除:

echo ' <td> 
     <a href="dashboard.php?exe=banner/banners&delbanner='.$readBannerResult['id'].'&img='.$readBannerResult['img'].'"> 
      Delete 
     </a> 
     </td>'; 

在这里,我有一个链接,确认删除:

echo '<span>You really want to Delete? 
<a href="dashboard.php?exe=banner/banners">No</a> 
<a href="dashboard.php?exe=banner/banners&delbannertrue='.$readBannerResult['id'].'">Yes 
</a> 
</span>'; 

这是我的PHP:

if(!empty($_GET['delbannertrue'])) 
    { 
     $thumb = $_GET['img']; 
     $year = date('Y'); 
     $month = date('m'); 
     $folder = '../banner-images/'; 

if(file_exists($folder.$year.'/'.$month.'/'.$thumb) && !is_dir($folder.$year.'/'.$month.'/'.$thumb.'/')) 
    { 
     unlink($folder.$year.'/'.$month.'/'.$thumb); 
    } 

     $delbannerTrue = $_GET['delbannertrue']; 
     $delBanner = $pdo->prepare("DELETE FROM banners WHERE id =? "); 
     $delBanner->bindValue(1,$delbannerTrue); 
     $delBanner->execute(); 
     header('Location: dashboard.php?exe=banner/banners'); 

     } 
+0

什么是'取消链接()'的返回值?你有权删除这个文件吗?尝试添加'echo substr(sprintf('%o',fileperms($ folder。$ year。'/'。$ month。'/'。$ thumb)),-4);'给你的代码 –

+0

非常奇怪,我把我的if(!empty($ _ GET ['delbannertr''))之外的unlink()部分放在它的外面,但它工作...但我只是想删除“delbannertrue”是否存在... – OzzC

+0

感谢您的回答squeamish ossifrage但它不是那个问题,因为我之前说过的,如果我把这个unlink()部分,在我的if..it工程之外! – OzzC

回答

2

您的代码是寻找图像名称,注意:

$thumb = $_GET['img']; 

    unlink($folder.$year.'/'.$month.'/'.$thumb); 

你“确认删除” URL但不包括img PARAM。 将此添加到网址,就像您对初始删除链接所做的那样,它应该没问题。

变化,

<a href="dashboard.php?exe=banner/banners&delbannertrue='.$readBannerResult['id'].'">Yes 

要,

<a href="dashboard.php?exe=banner/banners&delbannertrue='.$readBannerResult['id'].'&img='.$readBannerResult['img'].'">Yes 
+0

当然!我在这里约一个小时看代码并没有意识到,非常感谢你的帮助! – OzzC

+0

这是一个容易犯的错误!别客气。 – Adrian