Редактировать Apache mod_autoindex для предварительного просмотра изображений и mp3
Есть ли какой-нибудь способ изменить mod_autoindex так, чтобы всякий раз, когда файл с типом изображения (jpg, png и т. Д.) Или аудио (mp3, ogg), он либо открывал одно из этих маленьких встроенных окон и показывал изображение, либо использовал flash или HTML5 на основе аудиоплеер для воспроизведения файла. Я знаю, что у этого модуля есть много опций для настройки, но я не могу понять, какой код он использует для генерации списка файлов.
1 ответ
Короткий ответ
Да, есть несколько способов сделать это. Какой из них подходит вам, зависит от ваших личных потребностей и навыков. Вы можете либо отредактировать исходный код C и создать свой собственный модуль Apache, либо добавить дополнительные функциональные возможности, объявив сценарий на стороне клиента или на стороне сервера, который будет использоваться (или включен из) в заголовке файла индекса.
Длинный ответ
Изменить исходный код
Единственный способ изменить список, который также является самым сложным вариантом, - это отредактировать исходный код и скомпилировать свой собственный модуль Apache. HTML-код для каждого файла помещается в строку 1852 в файле mod_autoindex.c. Если вы не знаете C или код выглядит для вас слишком устрашающе, вы не сможете изменить список напрямую.
Однако вы можете косвенно изменить список, добавив (на стороне сервера или на стороне клиента) функциональность в заголовок индекса или файл нижнего колонтитула.
Что приводит нас к более простым вариантам.
Добавить функциональность на стороне сервера
Хотя вы не можете изменить список, вы можете вносить дополнения, имея серверный скрипт, который сканирует каталог, который вы просматриваете, и добавляете миниатюры / превью для определенных файлов. Вы даже можете полностью скрыть исходный список с помощью CSS, и скрипт на стороне сервера создаст свой собственный список.
Конечно, вы должны иметь возможность программировать Python/Perl/Ruby/PHP/ и т. Д. сделать это.
Я попробовал это в PHP некоторое время назад (в основном в качестве упражнения) в своем проекте Apache Directory List Theming. Он не делает ничего, кроме отображения списка миниатюр для всех изображений и файлов PDF в данном каталоге. (Это тоже не очень сложно).
Если вы также хотите добавить предварительные просмотры для аудио и / или видеофайлов и хотите, чтобы эти предварительные просмотры присутствовали в списке, сгенерированном Apache, вам, вероятно, лучше использовать решение на стороне клиента.
Добавить функциональность на стороне клиента
Добавив функции Javascript, вы можете проанализировать список и для каждого интересующего вас файла вставить предварительный просмотр в список. Проект prettyAutoIndex делает это. Лично я не использовал его, но он выглядит, ну, в общем, довольно:-) Кажется, он не разрабатывается активно, но если он работает, то на самом деле это не обязательно.
Если это не то, что вы хотите, и вы можете кодировать в Javascript, не должно быть слишком сложно создать что-то самостоятельно.
Завершение
Если вы решите создать решение на стороне сервера или клиента, оно не должно быть намного сложнее, чем создание файла с некоторыми функциями и вызов его из вашего Apache Config с помощью headername
:
<IfModule mod_autoindex.c>
HeaderName /path/to/header.file
</IfModule>
К сожалению, есть некоторые ошибки, поэтому я бы посоветовал уделить время прочтению соответствующих частей руководства mod_autoindex.