是否有可以动态列出文件夹内容的脚本?

时间:2010-03-16 13:32:18

标签: php jquery wordpress

我正在重新设计我公司在Wordpress中的内部网站点,他们需要的一件事就是公司备忘录的存档。在一个位置保存了300多个备忘录,我想知道是否有一个我可以运行的jQuery脚本,它将读取本地(网络)文件夹的内容并自动生成该文件夹内容的列表(并生成这些名称作为该文件的超链接,但如果我可以列出文件,我可以自己包含超链接标记。

我总是可以手动创建超链接列表(需要几天才能完成)但是如果我可以动态生成它,每当添加新的备忘录时,脚本会自动包含它,使网站更容易维护

这一切都可能吗?

我知道这可能是用PHP完成的,但我需要这样做的页面不是php页面,它是wordpress中创建的子页面之一,没有php文件扩展名,可以运行php代码(我知道)

提前感谢您提供任何帮助。

5 个答案:

答案 0 :(得分:3)

快速执行此操作的方法是使用Apache httpd的核心功能之一并修改配置文件httpd.conf,以在“目录”条目中包含“Indexes”关键字,如下所示:

<Directory /var/www/html/company/memo/folder>
   Options Indexes FollowSymLinks
</Directory>

这将导致显示文件的目录列表,其中包含为任何文件生成的链接,并根据文件权限授予访问权限。进行更改后重新启动Web服务器,您就可以开始使用了。

答案 1 :(得分:2)

jQuery将在查看器的浏览器上运行,因此无法查看任何文件或文件夹或网络共享。 Javascript不允许文件系统访问。您需要从服务器端执行此操作,这通常意味着在文件中(如您所说的PHP)。任何网络服务器都可以做到,你甚至不必使用wordpress,只是尝试直接链接到文件夹,Apache或IIS应该构建一个索引页。

答案 2 :(得分:1)

这是一个例子。显然,更改您要打开的目录,而不是提醒结果,您可以填充div或页面或任何您需要的内容。

<?php
if($_POST['list']){
    if($handle = opendir('.')){
        echo "Directory handle: $handle\n";
        echo "Files: \n";
        while(($file = readdir($handle))!=false)echo "$file\n";
    }
    closedir($handle);
    exit;
}
?>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
    <head>
        <meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
        <script type="text/javascript" src="include/js/jQuery/jquery-1.4.1.min.js"></script>
        <script type="text/javascript">
            $(document).ready(function(){
                jQuery.post('test.php?', {list: 1}, function(response){
                    alert(response);
                    });
            });
        </script>
    </head>
    <body>
    </body>
</html>

答案 3 :(得分:0)

Karl是对的,最好的方法是使用服务器端编程语言。

但是如果你仍然想在JS中使用它,你可以使用ActiveX,据我所知它只能在IE中工作,你必须克服一些安全边界。

CodeProject tutorial

答案 4 :(得分:0)

你可能在WP论坛上有更好的运气,但在Exec-PHP plugin和PHP5的scandir之间,你应该能够得到一些东西。 (也请查看scandir页面上的用户评论。特别是如果你坚持使用PHP4)