目录中的文件夹数组和每个文件夹中的显示文件,重命名/删除选项

时间:2014-08-04 06:58:05

标签: php arrays directory delete-file file-rename

这是a thread I came across here的后续问题。

用户可以将图片上传到我的网站,并将其保存在“上传”文件夹中。该网站上的另一个页面有一个照片库,可以从“已批准”的文件夹中提取照片。如何在文件名后面包含一个重命名或删除每个文件的链接(或复选框)?即:

    <?php
    function listFolderFiles($dir){
        $ffs = scandir($dir);
        echo '<ol>';
        foreach($ffs as $ff){
            if($ff != '.' && $ff != '..'){
                echo '<li class="title">';
                if(is_dir($dir.'/'.$ff)){
                    echo $ff;
                    listFolderFiles($dir.'/'.$ff);
                }else{
                    echo '<a href="'.$dir.'/'.$ff.'">'.$ff.'</a>'.
                    '...<a href="rename.file">Keep</a> - 
                    <a href="delete.file">Delete</a>';
                }
                echo '</li>';
            }
        }
        echo '</ol>';
    }


listFolderFiles('uploaded_files');

?>

1 个答案:

答案 0 :(得分:2)

<?php
function listFolderFiles($dir){
    $ffs = scandir($dir);
    echo '<ol>';
    foreach($ffs as $ff){
        if($ff != '.' && $ff != '..'){
            echo '<li class="title">';
            if(is_dir($dir.'/'.$ff)){
                echo $ff;
                listFolderFiles($dir.'/'.$ff);
            }else{
                echo '<a href="delete.php?file='.$dir.'/'.$ff.'">'.$ff.'</a>';
                echo '<a href="rename.php?file='.$dir.'/'.$ff.'">'.$ff.'</a>';
            }
            echo '</li>';
        }
    }
    echo '</ol>';
}


listFolderFiles('uploaded_files');

?>

delete.php 中,取File Argument $ _GET ['file'];

<?php

$file = "root/".$_GET['file'];
unlink($file);
location('back to the page');

?>

rename.php 中获取新名称和

<?php

    $file = "root/".$_GET['file'];
    rename($file,"New file name");
    location('back to the page');

?>

现在有两种方法可以实现,在主页面或rename.php中使用ajax将新文件名作为输入并进行重命名。