Есть ли скрипт, который может динамически перечислять содержимое папки? - PullRequest
0 голосов
/ 16 марта 2010

Я занимаюсь редизайном интранет-сайта моей компании в Wordpress, и одна из вещей, которая им нужна, - это архив служебных записок компании. В одном месте сохранено более 300 заметок, и мне интересно, есть ли сценарий jQuery, который я могу запустить, который будет читать содержимое локальной (сетевой) папки и автоматически генерировать список содержимого этой папки ( и сгенерировать эти имена в виде гиперссылки на этот файл, но если я смогу перечислить файлы, я сам смогу включить тег гиперссылки).

Я всегда могу вручную создать список гиперссылок (для этого потребуется несколько дней), но если я смогу сгенерировать его динамически, при каждом добавлении новой заметки сценарий автоматически включит его, что значительно облегчит обслуживание сайта .

Это вообще возможно?

Я знаю, что это, вероятно, можно сделать в PHP, но страница, на которой мне нужно это сделать, не является страницей php, это одна из подстраниц, созданная в WordPress, которая не имеет расширения файла php и не запускаю код php (который я знаю)

Заранее благодарим за любую помощь.

Ответы [ 5 ]

3 голосов
/ 16 марта 2010

Быстрый способ сделать это - использовать одну из основных функций Apache httpd и изменить файл конфигурации httpd.conf, включив ключевое слово «Indexes» в запись «Directory», например:

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

Это приведет к отображению списка файлов с ссылками, сгенерированными на любой из файлов, и предоставит доступ на основе прав доступа к файлам. Перезапустите веб-сервер после внесения изменений, и все готово.

2 голосов
/ 16 марта 2010

jQuery будет работать в браузере средства просмотра и поэтому не сможет видеть файлы, папки или сетевые папки. Javascript не разрешен доступ к файловой системе. Вам нужно будет сделать это со стороны сервера, а это обычно означает в файле (как вы сказали, PHP). Любой веб-сервер может это сделать, вам даже не нужно использовать WordPress, просто попробуйте подключиться напрямую к папке, и Apache или IIS должны создать страницу индекса.

1 голос
/ 16 марта 2010

Вот пример. Очевидно, измените каталог, который вы хотите открыть, и вместо предупреждения о результатах, вы можете заполнить 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>
0 голосов
/ 16 марта 2010

Возможно, вам больше повезет на форумах WP, но между плагином Exec-PHP и PHP5 scandir вы должны быть в состоянии что-то собрать. (посмотрите комментарии пользователей на странице scandir. Особенно, если вы застряли с PHP4)

0 голосов
/ 16 марта 2010

Карл прав, лучший способ сделать это на языке программирования на стороне сервера.

Однако, если вы все еще хотите использовать его в JS, вы можете использовать ActiveX, насколько мне известно, он будет работать только в IE и вам придется преодолеть некоторые границы безопасности.

Учебник CodeProject

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...