Как вы получаете доступ к другим файлам, хранящимся на сайте с помощью JavaScript? - PullRequest
0 голосов
/ 09 декабря 2011

Я пытаюсь написать веб-страницу для списка файлов для загрузки.Файлы хранятся вместе с веб-страницей, и я хочу, чтобы веб-страница динамически перечисляла все файлы в папке для загрузки.Таким образом, когда добавляется больше, мне не нужно изменять веб-страницу.Я знаю, как использовать JavaScript для создания ссылок на веб-странице, но мне нужно использовать его, чтобы сначала найти имена файлов.

Я нашел сайт, на котором был код для навигации по файлам, такой как файловый браузер, но он толькоиспользует строку для хранения текущего местоположения.

Это в заголовке:

<script type="text/javascript"><!--

var myloc = window.location.href;
var locarray = myloc.split("/");
delete locarray[(locarray.length-1)];
var fileref = locarray.join("/");

//--></script>

это в теле:

<form>
<input type=button value="Show Files" onClick="window.location=fileref;">
</form>

Однако это не такдействительно помогает, поскольку я пытаюсь создать ссылки для загрузки файлов, не имеющих файлового браузера.

Редактировать:

Когда вы размещаете традиционную HTML-страницу, вы загружаете html-файл и любые изображения или контент длястраница на каком-либо сервере вы используете.Я хочу использовать JavaScript для динамической ссылки на каждый файл, размещенный на веб-странице.Я пытаюсь объединить это с размещением файлов в общей папке Dropbox для простого способа сделать файлы доступными.

1 Ответ

1 голос
/ 09 декабря 2011

Если вам нужен список файлов на сервере, вам нужно будет использовать серверный скрипт для сбора их имен:

JS -

//use AJAX to get the list of files from a server-side script
$.getJSON('path/to/server-side.php', { 'get_list' : 'true' }, function (serverResponse) {

    //check the response to make sure it's a success
    if (serverResponse.status == 'success') {
        var len = serverResponse.output.length,
            out = [];

        //iterate through the serverResponse variable
        for (var i = 0; i < len; i++) {

            //add output to the `out` variable
            out.push('<li>' + serverResponse.output[i] + '</li>');
        }

        //place new serverResponse output into DOM
        $('#my-link-container').html('<ul>' + out.join('') + '</ul>');
    } else {
        alert('An Error Occured');
    }
});

PHP -

<?php

//check to make sure the `get_list` GET variable exists
if (isset($_GET['get_list'])) {

    //open the directory you want to use for your downloads
    $handle = opendir('path/to/directory');
    $output = array();

    //iterate through the files in this directory
    while ($file = readdir($handle)) {

        //only add the file to the output if it is not in a black-list
        if (!in_array($file, array('.', '..', 'error_log'))) {
            $output[] = $file;
        }
    }
    if (!empty($output)) {

        //if there are files found then output them as JSON
        echo json_encode(array('status' => 'success', 'output' => $output));
    } else {

        //if no files are found then output an error msg in JSON
        echo json_encode(array('status' => 'error', 'output' => array()));
    }
} else {

    //if no `get_list` GET variable is found then output an error in JSON
    echo json_encode(array('status' => 'error', 'output' => array()));
}
?>
...