【发布时间】:2014-09-02 17:17:08
【问题描述】:
有没有办法改变 mod_autoindex 以便每当图像类型(jpg、png 等)或音频文件(mp3、ogg)时,它要么打开其中一个嵌入的小窗口并显示图像,要么使用闪存或基于 HTML5 的音频播放器来播放文件。我知道这个模块有很多自定义选项,但我不知道它使用什么代码来生成文件列表。
【问题讨论】:
标签: javascript html apache mod-autoindex
有没有办法改变 mod_autoindex 以便每当图像类型(jpg、png 等)或音频文件(mp3、ogg)时,它要么打开其中一个嵌入的小窗口并显示图像,要么使用闪存或基于 HTML5 的音频播放器来播放文件。我知道这个模块有很多自定义选项,但我不知道它使用什么代码来生成文件列表。
【问题讨论】:
标签: javascript html apache mod-autoindex
是的,有几种方法可以做到这一点。哪一个适合您取决于您的个人需求和技能。您的选择是编辑 C 源代码并创建自己的 Apache 模块,或者通过声明将客户端或服务器端脚本用作(或包含在)索引文件的标头来添加额外的功能。
实际更改列表的唯一方法,也是最难的选择,是编辑源代码并编译您自己的 Apache 模块。每个文件的 HTML 代码放在line 1852 in the mod_autoindex.c file 上。如果您不懂 C 或者如果代码看起来对您来说太艰巨,则无法直接更改列表。
但是,您可以通过向索引页眉或页脚文件添加(服务器端或客户端)功能间接地更改列表。
这给我们带来了更简单的选择。
虽然您无法更改列表,但您可以通过使用服务器端脚本扫描您正在浏览的目录并为某些文件添加缩略图/预览来进行添加。您甚至可以使用 CSS 完全隐藏原始列表,并让服务器端脚本构建您自己的自定义列表。
当然,您必须能够编程 Python/Perl/Ruby/PHP/等。这样做。
不久前,我在我的Apache Directory List Theming project 中使用 PHP(主要是作为练习)对此进行了尝试。除了显示给定目录中所有图像和 PDF 文件的缩略图列表之外,它什么也不做。 (它也不是很复杂)。
如果您还想为音频和/或视频文件添加预览,并且您希望这些预览出现在 Apache 生成的列表中,您可能最好使用客户端解决方案。
通过添加 Javascript 功能,您可以解析列表,并为您感兴趣的每个文件在列表中插入预览。 prettyAutoIndex 项目就是这样做的。我没有亲自使用过它,但它看起来,嗯,很漂亮:-) 它似乎没有被积极开发,但如果它有效,它并不一定是。
如果它不是你想要的并且你可以用 Javascript 编码,那么自己创建东西应该不会太难。
如果您决定创建服务器或客户端解决方案,它应该不会比创建具有某些功能的文件并使用 headername 从您的 Apache Config 调用它复杂得多:
<IfModule mod_autoindex.c>
HeaderName /path/to/header.file
</IfModule>
不幸的是,有一些问题,所以我建议花时间阅读the mod_autoindex manual的相关部分。
【讨论】: