2014-05-18 109 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