Как я могу сделать HTML-файл, который перечисляет файлы в своем каталоге?

0

Вот проблема, с которой я имею дело:

Очень мало оконных программ, которые отображают анимированные изображения.gif с правильной частотой кадров. Вероятно, потому что все они используют библиотеки Windows (возможно.net) для этого, и каждый, кто попытался просмотреть анимированный gif в IE, и обнаружил, что он играет WAY TOO SLOW, знает, что Microsoft не справилась с этим эффектно.

Веб-браузер Chrome - одна из немногих программ для окон, которые всегда воспроизводят анимированный gif с правильной частотой кадров, поэтому мое решение заключается в создании автономного html-документа для открытия в Chrome, который можно отбросить в каталог и открыть в Chrome для отображения всех изображений в этом каталоге и/или его подкаталогах в стиле просмотра изображений.

Пока что мой документ (gif_view.html) открывает изображение на основе жестко закодированного имени пути/файла, увеличивает/уменьшает это изображение с помощью кнопок вверх/вниз и переключается на другие жестко кодированные изображения с левой и правой ключи.

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

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

Кто-нибудь знает, как это сделать? Возможно, другой язык сценариев для обработки левых/правых клавиш? Или есть способ программно прочитать каталог с JS, который я пропустил? Или Microsoft FINALLY выпустила патч или что-то, чтобы исправить проблему с частотой кадров?

Пожалуйста, имейте в виду: это должен быть ОДНОСТОРОННИЙ ДОКУМЕНТ без каких-либо внешних зависимостей. Пользователь должен просто иметь возможность зайти в папку, открыть ее в браузере и посмотреть, как происходит волшебство. Если ваше решение включает в себя что-либо вне самого документа (например, скажем, установить Apache и некоторый скрипт на стороне сервера для чтения файла), то это не решение. Я уже так пробовал такие вещи. Такие внешние решения работают, но каждый из них очень неуклюж по своим причинам.

Если у кого-то есть идеи, я был бы благодарен.

  • 0
    Как насчет использования C # (или почти любого другого языка) для динамической загрузки вашего содержимого на стороне сервера?
  • 0
    Как уже упоминалось, это не серверная программа, которая отображает страницу. Это не веб-разработка. Все сценарии и программирование ДОЛЖНЫ содержаться в ОДНОМ HTML-документе (gif_view.php). Это отдельный документ, который ЛЮБОЙ дилетант может сохранить в виде файла на своем компьютере и открыть в браузере как локальный файл. Никаких внешних зависимостей, кроме файлов изображений в его собственном каталоге, который он просматривает.
Показать ещё 4 комментария
Теги:
google-chrome

1 ответ

2
Лучший ответ

Используя функцию загрузки каталогов Chrome, это легкий ветерок. Во-первых, поместите поле выбора файла в свой HTML-код файла:

<input type="file" id="file_input" webkitdirectory="" directory="">

и затем, когда пользователь выбирает папку, используя его, вы можете читать такие вещи, как это:

document.getElementById('file_input').addEventListener('change',function(e){
    var gifs=e.target.files;
    [].forEach.call(gifs,function(curGif){
        var elt=document.createElement('img');
        elt.setAttribute('src',(webkitURL||URL).createObjectURL(curGif));
        document.body.appendChild(elt);
    });
},false);

у этого нет всех причудливых вещей со стрелками, но он работает: http://jsfiddle.net/markasoftware/m65u7/1/

  • 0
    Огромное спасибо. Это сработало хорошо. Я немного повозился, чтобы на странице отображалось первое изображение в выбранном каталоге, запомнил остальные в глобальной переменной, а затем переключался между ними с помощью клавиш со стрелками. Конечный результат просто великолепен.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню