2012-09-06 65 views
0

嘗試製作下拉列表,顯示來自特定文件夾的文件,並使用刪除按鈕刪除選定的文件。在下拉列表中選擇刪除文件

下拉列表:

<?php 
    $dirname = "files"; 
    $dir = opendir($dirname); 
    echo '<form action="delete.php" method="get">'; 
    echo '<select name="file2">'; 
    while(false != ($file = readdir($dir))) 
    { 
     if(($file != ".") and ($file != "..")) 
     { 
      echo "<option value=".$file.">$file</option>"; 
     } 
    } 
    echo '</select>'; 
    echo '<input type="submit" value="Delete" class="submit" />'; 
    echo '</form>'; 
?> 

delete.php文件:

<?php 
    $dirpath = "files"; 
    $file_to_delete = $_POST['file2']; 
    if (unlink ($dirpath.'/'.$file_to_delete)) { 
     echo $file_to_delete . " deleted."; 
    } else { 
     echo "Error."; 
    } 
?> 

當我再嘗試選擇一個文件,然後按刪除,我得到以下錯誤:

Warning: unlink(files/): Is a directory in /xxx/xxx/xxx/xxx/xxx/xxx/xxx/xxx/delete.php on line 4 Error.

由於隱私而被xxx'ed出:)所有文件都試圖成爲d eleted是chmod 777. 它是一個簡單的.txt文件,我試圖刪除。

不知道什麼,我丟失或我做錯了什麼在這裏...:/

+0

在嘗試刪除之前,您是否試過查看'print_r($ _ POST ['file2'])'是什麼? –

回答

2

這是$_GET,因爲你的窗體有method="get"

$file_to_delete = $_GET['file2']; 

這樣:

<?php 
    $dirpath = "files"; 
    $file_to_delete = $_GET['file2']; 
    if (unlink ($dirpath.'/'.$file_to_delete)) { 
     echo $file_to_delete . " deleted."; 
    } else { 
     echo "Error."; 
    } 
?> 

如果您想要將表單更改爲method="post"

+0

啊,輝煌。 :)每天學習一些新的東西。 非常感謝米海。 – denully

相關問題