h5ai
更:0.28.1版本中文文件名乱码,已解决!但不算完美...
在_h5ai/private/php/core/class-context.php
中第91行将$encoded_parts[] = rawurlencode($part);
替换为$encoded_parts[] = rawurlencode(mb_convert_encoding($part, "UTF-8", "GBK"));
在apache环境下测试没问题
,但在nginx
下测试中文名字文件(非中文文件就没事)下载显示为空,即出现404!
h5ai 是一款非常优秀的文件管理器。作者是Lars Jung。
官网链接:https://larsjung.de/h5ai/
官方Demo:https://larsjung.de/h5ai/demo/
开源GitHub: https://github.com/lrsjng/h5ai
它的主要特点如下:
可按文件名、日期或大小排序
支持多种视图及图标模式
支持多国语言
可自定义页面顶部及底部
可过滤显示文件及文件夹
可计算文件夹大小
自动刷新文件夹内容
支持文件二维码
支持生成图片、视频、PDF文档缩略图
可以在线预览txt,图片,音频,视频等文件格式
点击那个在官网右边有一个黑色按钮
可见最新版本是0.27.0,我们下载并解压。
②上传_h5ai到服务器。
【注意】例如我希望用h5ai管理/dl
这个文件夹,那么_h5ai
整个文件夹
应该放到/dl
下面,而不是将_h5ai里面的文件
放到/dl
下。
然后在浏览器内打开h5ai的安装界面,例:http://www.abc.com/dl/_h5ai
初始密码是空
,直接按login即可。
这里PHP Version是yes,前三项是yes即可(如果第二项不是不用担心,下面会解决
)。
剩下的各类功能如PDF预览、视频预览等需要各位自己去调整设置了。
更
:此处来自教程没有测试过!_h5ai/cache这个文件夹根据官方说明需要可写权限,设置成wwww就可以正常
Movie thumbs 视频预览的,环境是ubuntu系统,执行:apt-get install libav-tools
PDF thumbsapt-get install aptitude
aptitude install imagemagick
注:这一步完成之后建议将/_h5ai/index.html的后缀名修改一下,更安全。
③设置
如Apache
httpd 2.2/2.4设置.htaccess
例如我们的h5ai在/dl/_h5ai下
我们就需要在/dl下新建一个.htaccess
里面的内容是:DirectoryIndex /dl/_h5ai/server/php/index.php
例如我用域名(www.abc.com)访问,环境是nginx
在vhost
里找到www.abc.com.conf
添加红色部分
server {
listen 80;
server_name www.abc.com;
access_log /home/wwwlogs/www.abc.com_nginx.log combined;
index index.html index.htm index.php /_h5ai/public/index.php
;
保存后记得重启nginx:service nginx restart
其他环境请看下面官方的设置:
保存该文件。用浏览器进入/dl看一看,如果你看到这个界面,说明h5ai已经搭建完成了。注
:h5ai是自带中文的,点击左上角菜单按钮可设置
④修复中文文件夹名、文件名
由于h5ai作者比较懒直接从UTF-8编码的URL中截取文件夹名、文件名显示出来,所以中文文件夹名、文件名会显示乱码。
下面是解决方法:
用任意文本编辑器打开/_h5ai/server/php/inc/class-app.php
修改以下内容:
第84行
原为:$encoded_parts[] = rawurlencode($part);
修改为:$encoded_parts[] = rawurlencode(mb_convert_encoding($part, "UTF-8", "GBK"));
第95行
原为:return Util::normalize_path(ROOT_PATH . "/" . rawurldecode($rel_url));
修改为:return Util::normalize_path(ROOT_PATH . "/" . mb_convert_encoding(rawurldecode($rel_url), "GBK", "UTF-8"));
完成上述操作后保存文件,刷新页面,中文文件夹名、文件名就不是乱码了。
⑤自定义设置
h5ai支持个性化设置,需要修改/_h5ai/conf/option.json
建议保持默认。
真的要修改,无特殊情况请勿修改view内的设置。
另外(头部和底部的显示,语言设置)
如果你觉得官方的翻译不够好,或者想个性化,可以修改_h5ai/conf/l10n/zh-cn.json
默认没有显示header和footer:手动新建_h5ai.header.html
和_h5ai.footer.html
,各自输入想显示的内容即可,
这两个可以放在当前文件夹里或放在其他文件夹里,在其他文件夹里只要浏览到那个文件夹才会显示,
就是说只会自动识别当前文件夹里的header和footer文件,支持不同文件夹显示不同内容
**默认语言是en要显示为中文在options.json的165
行改为zh-cn
即可;
**默认语言设置在0.28.1版本
的路径是_h5ai/private/conf/options.json中201
行把en改为zh-cn
即可;进入/_h5ai的密码
(默认为空)在_h5ai/server/php的index.php的第11行删掉原来的,进入http://www.sha1.cz/
输入你的密码,生成一个sha1,复制回到define("PASSHASH", "新的sha1
");
默认不显示文件(夹)信息和二维码:在options.json的150
行改为"show": true,
即可,当然也可以点左边的(info
)显示
默认不显示文件夹的大小:定位到foldersize,在127行改为"enabled": true,
即可
⑥收工
至此h5ai的搭建工作全部结束,如本文中的例子,将文件放入/dl内,在浏览器内就能查看到这些文件了。
发一张本站搭建好后的截图:
点击文件的名字即可下载。
除非你的网站是个单纯的文件仓库,否则不推荐将h5ai直接搭建在网站根目录下。
为了站点的安全,可以适当修改设置,如view内的hidden,可以隐藏你不想在h5ai内显示出来的文件/文件夹。
本站点的_h5ai
教程来自:关于在自己的站点使用 h5ai