2012-04-24 140 views
0

首先,我知道要使用Unlink從目錄中刪除單個文件。然而,我想知道的是如何設置,以便我可以有一個html界面,並能夠選擇通過目錄中的所有文件。從目錄中刪除文件

代碼會很好,但向你詢問優秀的人是不公平的。所以向正確的方向推進將是一樣的好。

+0

的所有文件,你whant一個完整的腳本 – Grumpy 2012-04-24 11:46:12

+0

你的意思是你想有一個目錄列表腳本,給出的鏈接刪除文件?從['glob()'](http://php.net/manual/en/function.glob.php)開始 – DaveRandom 2012-04-24 11:46:22

+0

你需要任何類或函數嗎? – Huseyin 2012-04-24 11:47:36

回答

0

您可以參考here獲取開源版本的php文件管理器。您可以查看其代碼或直接使用它。通過在此粘貼示例代碼來完成該操作並不容易。

0

以下函數用於刪除整個目錄。

function readDirectory($dir){ 
$dir = opendir($dir); 
while (($file = readdir($dir)) !== false) 
    { 
    if($file!="." and $file!=".."){ 
     echo "filename: " . $file . "<br />"; 
    } 
    } 
closedir($dir); 
} 
function rrmdir($dir) { 
    if (is_dir($dir)) { 
    $objects = scandir($dir); 
foreach ($objects as $object) { 
if ($object != "." && $object != "..") { 
if (filetype($dir."/".$object) == "dir")rrmdir($dir."/".$object); else unlink($dir."/".$object); 
} 
} 
reset($objects); 
rmdir($dir); 
} 
} 
+0

有2個函數用於刪除整個目錄,其他用於讀取整個目錄,只有在腳本有權限讀取,刪除目錄時纔有效。 – 2012-04-24 12:05:58

5

此代碼列出給定目錄中的所有文件,並刪除鏈接。當點擊刪除按鈕時,它會調用一個php文件來使用ajax(jquery)函數刪除文件。 檢查是否有多個文件不具有相同的名稱。

列出目錄中的

<?php 
$directory = "your directory path"; 
$images = scandir($directory); 
$ignore = Array(".", ".."); 
$count=1; 
echo '<table border=1>'; 
foreach($images as $dispimage){ 
    if(!in_array($dispimage, $ignore)){ 
    echo "<tr id='del$count'><td>$count</td><td>$dispimage</td><td><input type='button' id='delete$count' value='Delete' onclick='deleteFile(\"$dispimage\",$count,\"$directory\");'></td></tr>"; 
    $count++; 
    } 
} 
echo '</table>'; 
?> 
<script type="text/javascript" src="jquery.js"></script> 
<script type="text/javascript"> 
function deleteFile(fname,rowid,directory) 
{ 
    $.ajax({ url: "deletefile.php", 
     data: {"filename":fname,"directory":directory}, 
     type: 'post', 
     success: function(output) { 
      alert(output); 
      $("#del"+rowid).remove(); 
     } 
    }); 
} 
</script> 

deletefile.php

<?php 
$filename = $_POST['filename']; 
$path = $_POST['directory']; 
if(file_exists($path."/".$filename)) { 
unlink($path."/".$filename); //delete file 
} 
?> 
+0

那很美。顯示所有內容,但它不會刪除,但我會繼續討論它 – user1309522 2012-04-24 12:47:59

+0

請檢查您的路徑中是否有jquery.js – nithi 2012-04-24 13:00:25

+0

我在deletefile.php中犯了一個小錯誤。 $ filename = $ _POST ['fname'];將其更改爲$ filename = $ _POST ['filename']; – nithi 2012-04-24 13:06:17