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.";
    }
?>

然后当我尝试选择一个文件并按删除时,我收到以下错误:

警告:unlink(files/): 是 /xxx/xxx/xxx/xxx/xxx/xxx/xxx/xxx/delete.php 中的目录第 4 行错误。

由于隐私,xxx'ed out :) 所有试图删除的文件都是 chmod 777。它是一个简单的 .txt 文件,我试图删除。

不知道我错过了什么或我在这里做错了什么......:/

4

1 回答 1

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".

于 2012-09-06T13:25:53.403 回答