数据库中的文件结构

时间:2016-05-20 16:12:29

标签: php database file tree

我在PHP中创建一个简单的文件列表函数,只是递归列出目录中的所有文件。 我现在的功能看起来像这样:

<?php
function listFiles($dir){
    echo "<ul class=\"filebrowser\">";
    $dirCont = scandir($dir);           // scan the whole directory
    sortFoldersFirst($dirCont,$dir);    // sort alphabetically, folders first
    foreach ($dirCont as $value) {
        if (!in_array($value,array(".","..",".deleted"))){ // don't list the parent folder, current folder, or the (hidden) .deleted folder
            if (is_dir($dir . DIRECTORY_SEPARATOR . $value)){   // if it's a folder
                echo "<h3 class=\"filebrowser\">"  . $value . "</h3>"; // show the folder name
                listFiles($dir . DIRECTORY_SEPARATOR . $value);  // do the same again for the child folder
            } else {
                echo "<li><a href=\"".$dir.DIRECTORY_SEPARATOR.$value."\">".$value."</a></li>";  // a link to the file
            }
        }
    }
    echo "</ul>";
}
?>

这给了我这样的东西:

enter image description here

这项技术工作得很好,但是,我想存储一些关于文件的更多信息,比如作者,评论,可能是缩略图的链接等。 我想摆脱'真正的'目录结构,并将所有内容存储在数据库中。 (只是1个大文件夹中的所有文件,以及数据库中文件的链接,而不是实际文件) 如何将此信息存储在数据库中,如何在不更改浏览器结果的情况下将其恢复。 换句话说:如何将树结构输入和输出数据库,以及如何递归循环它。

我找到了this answer。 它显示了如何通过为每个文件/文件夹保存父文件夹的id来创建数据库树结构。这样可以轻松获取文件的完整路径,但列出文件夹的所有内容似乎不太方便。 这个问题有更好的解决方案吗?

提前致谢, 彼得

0 个答案:

没有答案