【问题标题】:how to automatically list folder contents inside web server on a webpage如何在网页上自动列出 Web 服务器内的文件夹内容
【发布时间】:2012-10-05 04:33:18
【问题描述】:

我有一个程序可以将文件上传到我的网络服务器上的特定文件夹,我现在要做的是让用户自动获得对该文件的访问权限,因此在他上传文件后,它将被列在网页,并且可以下载。无论如何这有可能吗?只要满足结果,任何javascript或php都可以,提前谢谢。

我想让网页自动列出用户上传文件的文件夹的内容,以便他们下载。我不想要索引,而是网页内的实际列表。就像您将文件上传到 google docs 时一样,然后它会自动列出以供下载。

【问题讨论】:

  • 用户在进入允许索引的文件夹时看到的索引一个网页。您能否更具体地说明您所做的以及不希望他们看到的内容?
  • 一个会自动列出文件夹内容的网页
  • 查看PHP Manual中的目录函数

标签: php javascript file download webserver


【解决方案1】:

将所有上传文件的文件路径存储在数据库中。可以通过ajax获取用户所有上传文件的列表并实时显示。我相信 Google 使用 ajax 来完成您所描述的。

【讨论】:

    【解决方案2】:

    听起来您想使用scandir 之类的东西。请记住,您传递的目录应该是一个绝对的服务器路径,这与您将用于形成实际页面链接的 www 根目录不同。

    所以如果你有一个 index.php 和一个 /images/ 目录,你需要这样的东西:

    $images_directory = "/images/";
    $path_to_files = dirname(__FILE__) . $images_directory;
    
    $dir_contents = scandir( $path_to_files );
    

    然后您可能希望过滤目录内容以仅显示图像:

    $images = preg_grep("/(?i).(gif|jpg|png)$/", $dir_contents);
    

    现在你有了一组图片,你只需要格式化你的 html 链接:

    foreach( $images as $image ){
        $file = $image_directory . $image;
        echo "<a href='$file'>$image</a>";
    }
    

    说了这么多,这是一种非常盲目的做法。它在某些情况下当然很有用,但如果您想做一些事情,比如按用户限制图像,并保存名称/描述/标签等图像信息,您可能希望在上传目录时简单地将目录保存在数据库中。

    【讨论】:

      【解决方案3】:

      当您上传文件时,将路径和文件名保存在数据库中。上传成功后通过ajax获取文件名并显示文件,当他/她下载时从db中获取文件名和路径,如果找到则在目录中搜索然后下载到客户端。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2014-08-06
        • 2018-05-26
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-08-30
        • 2012-08-16
        • 1970-01-01
        相关资源
        最近更新 更多