2013-02-05 60 views
0

我有一個文件夾/目錄包含大量的圖像和其他文件夾/目錄。通過點擊通訊按鈕刪除圖像

我顯示使用下面的代碼,這些文件的預覽:

<?php 
     $images=array(); 
     $dir_handler = opendir('test') or die("Unable to open path"); 
     $i=0;  
     while($file = readdir($dir_handler)) 
     {    
     if(is_dir($file)) 
     continue;   
     else if($file != '.' && $file != '..' && $file != 'index.php') 
     {      
     $images[$i]=$file; 
     $i++;  
     }  
     }  
     sort($images); 

     for($i=0; $i<sizeof($images); $i++) 
     {    

     echo "<a href=".chr(34).$path.$images[$i].chr(34)."><img style='border:1px solid #666666; width:100px;height:100px; margin: 10px;' src='test/".$images[$i]."'/><input type='button' value='nok[]'></a>"; 

     }  closedir($dir); 
?> 

的問題是,我想分配一個單獨的按鈕,每個文件(每個圖像或文件夾),因此由單擊每個按鈕,其相應的圖像(或文件夾/目錄)將從主文件夾中刪除,而不再顯示爲預覽。

另一個小問題是文件夾的預覽沒有顯示上面的代碼。爲什麼?任何幫助將不勝感激。

+0

是否要從服務器上刪除圖像/目錄?或者你想停止顯示它們? – David

+0

確實他們都是 –

回答

0

您總是顯示圖像,您需要檢查$ images數組值是否爲圖像或文件夾。然後在顯示屏上做一些不同的事情。

要刪除文件或文件夾,分別使用這些功能:

unlink(); 
rmdir(); 

http://www.php.net/manual/en/function.rmdir.php

http://php.net/manual/en/function.unlink.php

要添加的文件夾列表之前您的圖像更改您的代碼:

<?php 
    $images=array(); 
    $folders = array(); 
    $dir_handler = opendir('test') or die("Unable to open path"); 
    $i=0;  
    while($file = readdir($dir_handler)) 
    {    
    if(is_dir($file)) { 
     $folders[count($folders)] = $file; 
    } 
    else if($file != '.' && $file != '..' && $file != 'index.php') 
    {      
    $images[$i]=$file; 
    $i++;  
    }  
    }  
    sort($images); 

    foreach($folders as $folder){ 

    echo "<a href='#'>$folder</a>"; 
    } 

    for($i=0; $i<sizeof($images); $i++) 
    {    

    echo "<a href=".chr(34).$path.$images[$i].chr(34)."><img style='border:1px solid #666666; width:100px;height:100px; margin: 10px;' src='test/".$images[$i]."'/><input type='button' value='nok[]'></a>"; 

    } 

closedir($dir); 
?> 

然後你所要做的就是在視圖中構建文件夾的視覺元素,並鏈接到將在需要時執行unlink()和rmdir()的函數。

+0

謝謝,但是我的主要問題與刪除操作無關。我的問題是,我怎樣才能定義圖像和按鈕,使他們成爲記者。比如他們的名字應該像$ images [i]和$ buttons [i]?我將它們定義爲一個一個的corepondent數組有問題。 –

+1

編輯說明如何將文件夾添加到代碼並在圖像之前顯示它們。 –

0

這裏有幾個問題。

第一個問題:爲什麼預覽文件夾不顯示?這是因爲您通過循環顯示$ images數組來顯示預覽,但不會將目錄添加到該數組(請參閱您的代碼,檢查它是否is_dir,然後調用「continue」)。如果你想包含目錄,那麼你應該將它們包含在$ images數組中(或者對它們做其他事情)。

第二個問題:如何刪除?您需要擴展現有的PHP腳本或編寫另一個腳本。你可以在刪除圖標上創建一個鏈接;鏈接的href將是新的(或現有的)PHP腳本,並且您將作爲參數傳入要刪除的文件夾或文件。如果它是一個文件夾,則使用rmdir()。如果它是一個文件,那麼使用unlink()。如果您需要它,我可以稍後幫助您。