最新版
v1.31
已更新,请前往Github下载:https://github.com/helloxz/zdir/releases
原打算自建一个前端库,网上找了一大圈目录列表程序,发现都不符合自己的胃口,于是自己动手,最后Zdir 诞生了。Zdir是一款使用PHP开发的目录列表程序,无需数据库,安装简单,使用方便。
主要功能
- 目录浏览
- MarkDown文件预览
- CSS/JavaScript一键复制
- 查看文件HASH
- 图片预览
- 文件索引
- 文件搜索(依赖于文件索引)
- 文件管理(上传/下载/删除等)
- 二维码支持
- 视频播放/音乐播放
- 文本查看
- Office在线预览
功能详细说明(不完全)
MarkDown文件预览
如果是MarkDown文件(.md
)后面会出现一个小眼睛按钮,点击此按钮可直接预览。
如果文件是以readme.md
命名,会出现“使用说明”按钮,点击也可以预览,如下截图。
链接复制
复制按钮会根据文件类型判断,最后返回不同的复制结果,在用于搭建前端库的时候非常有帮助,比如:
<!--如果复制的是.js文件,返回结果为-->
<script src = 'https://libs.xiaoz.top/jquery/2.0.3/jquery-2.0.3.js'></script>
<!--如果复制的是.css文件,返回结果为-->
<link rel='stylesheet' href='https://libs.xiaoz.top/layer/skin/layer.css'>
<!--如果是图片等文件-->
<img src = 'https://libs.xiaoz.top/material/loading/loading0.gif' />
其它文件返回文件URL地址。
查看文件hash
点文件后面的“叹号”按钮,可以计算文件md5和sha1值,验证文件hash值,可避免运营商劫持等风险。
图片预览
鼠标移动到图片文件会显示图片预览,如下截图。
文件索引
如果文件太多,查找不太方便,Zdir暂时未实现文件搜索功能,不过通过“文件索引”功能加上“Ctrl + F”,找文件也是分分钟的事情。
“文件索引”缓存时间为24小时,如果希望立即清除缓存请访问cache.php?del=cache
以上仅列举出了部分功能,大家可自行下载安装体验。
使用方法
- 下载源码放到站点根目录
- 将
config.simple.php
修改为config.php
- 在
config.php
设置站点信息/密码等信息
相关推荐
- LNMP环境安装h5ai索引目录与基本配置
- 又一款目录索引工具PHP Directory Lister
- 使用Fdscript程序实现漂亮的索引目录
- Nginx编译安装Fancy Index模块,实现漂亮的索引目录
总结
从使用过的目录列表程序来看,h5ai 功能很强大,但是配置略微繁琐,代码有混淆,不适合二次修改。
PHP Directory Lister简洁适用,但是从墙外加载资源,不利于新手,另外Zdri的部分开发思路也借鉴了PHP Directory Lister
Zdir虽功能简单,但却适用,猛戳下面的链接下载。
大佬,后台新建文件夹,创建不了,提示:Folder 专用 created,文件名:No data available in table,这个是直接在放在空间里使用的,不是写入mysql安装的,怎么会创建文件夹呢?
权限都对着呢!再nas里面,索引一直空白怎么回事。
文件索引
index.php??c=cache
index.php?c=cache&del=cache清除当前缓存并重新生成索引
都是显示HTTP ERROR 500。
目录权限是777。
补充,是在群晖里。web station下使用。
已知BUG,后面修复。
Zdir的界面看着不太习惯,做了一个Beauty Directory.
soft.ulmt.com
老哥这界面不错啊,能贡献一下么。
他的界面就是去掉了导航栏底色,还有导航栏和路径等字号变大了,左上角logo和主体列出的文件名和对应的操作图标色彩变成一致。博主也可以这样照着改,换个颜色就好了,他是天蓝,你用深蓝藏青色。希望看到更好的界面。
老哥 求分享 分享
http://soft.xiaoz.org/index.php?dir=/office
office现在在线预览无法打开,提示
An error occurred
We’re sorry, but for some reason we can’t open this for you.
上传文件的显示的修改时间不一致,总要早于上传文件的时间
您使用的Zdir版本是多少呢?在functions/version.txt 可以查看。
你好;请问我在内网使用,索引为空、视频加载失败是什么原因啊?谢谢
Server2008,iis+护卫神
1、如果域名无法被公网访问,将无法生成索引。您可以在hosts文件中添加您的域名指向127.0.0.1
2、视频加载失败检查下IIS的MIME类型设置
关于列表显示乱码提示文件不存在问题,在zdir.class.php文件第428行windows转码处将gb2312改为utf-8就完美显示,乱码运行系统是chrome 81.0.4044.122版本,如果有相同乱码遭遇的可以采用此方法解决,没有测试过其他平台是否正常,目前仅在chrome和Safari以及QQ游览器出现乱码行为并采取此方法修复。
还有一个问题是同样乱码行为出现在admin.php界面请问相关代码在哪修改,此乱码导致无法后台修改文件名字,无法上传中文名称文件,以及创建中文名称文件夹
阁下是什么平台(windows or linux),使用的zdir版本多少呢?中文文件怎样上传的呢?
widows平台,zdir版本1.3-20200405,在自带后台admin.php进行中文文件上传和中文文件夹创建以及修改名称,均出现乱码,或者空白,使用英文则正常,请问怎么解决,谢谢
大佬。我在config.php修改密码成”password” => “123456”但是,我输入帐号admin 密码是123456 还是提示我账号密码信息错误
新版用户名改为zdir了
操作的按钮颜色在哪更换
复制 下载 查看 的蓝色小按钮,像换一个颜色 ,不知道在哪更换
在functions/home.php,前端框架用的LayUI,参考LayUI的样式去修改就行。
谢谢博主,成功更改为白色了
非常好用,尤其这个README.md ,很美观
https://sagit.sbwml.net/?dir=/tools/WSL2/kernel
不过我有个bug 反馈
https://github.com/helloxz/zdir/blob/master/functions/home.php#L146
使用说明的 README.md 站内显示是正常的,但是如果文件名为 readme.md 小写就无法正常读取内容了,
会显示 {“code”:0,”msg”:”\u6587\u4ef6\u4e0d\u5b58\u5728\uff01″}
环境是 nginx 1.16.x、php7.4.4 (https://sagit.sbwml.net/template/cpu/#MainTab4)
缓存提示500错误,咋回事?
检查下目录是否可写,可以将PHP详细报错开启看下。
docker里面跑 alpine-nginx-php ,文件上传超过6mb,就报错。提示Server responded with 0 code.
php默认的上传大小限制是2M or 8M ,上传大文件你自己必须修改 php.ini 配置文件以下两个参数
post_max_size = 128M
upload_max_filesize = 128M
具体大小按照自己需求而定
你好,捐赠版是不是可以删除顶部广告?可以自定义广告么?还有一个,自带的一个什么@dear的文件夹,我删除了,为什么过一段时间还会自动创建?这个是什么文件?怎样才可以彻底删除?捐赠版怎么捐赠,你怎么看到?
1、可以自定义广告
2、@dear这个不是Zdir自带的,确认下是在Github官方项目下载的源码吗?
3、捐赠版直接加我的QQ:337003006
首页滚动的广告那里修改啊
滚动通知是根据 js 预设内容显示,默认源码获取的滚动通知js 是博主的推广url,你是有这个需求去更改的话,自行用浏览器网页调试找出连接,通过grep 定位php文件位置进行修改,改成自己的通知内容直接在某一隐藏目录下载创建任意名称的 xxx.js ,并引用改js 即可显示
JS文件demo,通知内容可以使用 html ,自行发挥
===============demo==================
$(document).ready(function(){
msg();
});
function clear_msg(){
$(“#msg-content”).empty();
}
function msg(){
var num = parseInt(Math.random()*(4-0+1)+0,10);;
var content = new Array();
content[0] = ‘通知1’;
content[1] = ‘通知2’;
content[2] = ‘通知3’;
content[3] = ‘通知4’;
content[4] = ‘通知5’;
$(“#msg-content”).append(content[num]);
window.setTimeout(“clear_msg()”,9800);
window.setTimeout(“msg()”,10000);
}
===============demo end===============
这个一直显示重连是怎么回事呢
Wed Dec 18 23:52:05 2019 Restart pause, 5 second(s)
Wed Dec 18 23:52:10 2019 WARNING: –ns-cert-type is DEPRECATED. Use –remote-cert-tls instead.
Wed Dec 18 23:52:10 2019 Outgoing Control Channel Authentication: Using 160 bit message hash ‘SHA1’ for HMAC authentication
Wed Dec 18 23:52:10 2019 Incoming Control Channel Authentication: Using 160 bit message hash ‘SHA1’ for HMAC authentication
Wed Dec 18 23:52:10 2019 MANAGEMENT: >STATE:1576684330,RESOLVE,,,,,,
Wed Dec 18 23:52:10 2019 RESOLVE: Cannot resolve host address: wf.yx.smwlm.com:53 ()
Wed Dec 18 23:52:10 2019 MANAGEMENT: >STATE:1576684330,RESOLVE,,,,,,
Wed Dec 18 23:52:10 2019 RESOLVE: Cannot resolve host address: wf.yx.smwlm.com:53 ()
Wed Dec 18 23:52:10 2019 Could not determine IPv4/IPv6 protocol
点击“文件索引”,只显示“文件索引 – 该数据缓存于2019-11-22 15:16:13”,然后下面没有内容;
而且第一次索引时,是显示“文件索引 – 该数据缓存于1970-01-01 08:00:00”,再点一次索引,时间就正常了,但还是没有内容显示。
1. 检查下目录权限是否正常
2. 可以尝试清理下索引的缓存index.php?c=cache&del=cache
目录权限已经设置了,缓存也清了,还是不能显示。。。
CACHES目录权限已经设为777,但发现生成的缓存文件indexes.html权限为644,而且文件是没内容的,大小为0B.
似乎对带有符号的目录兼容性不太好。会提示目录不存在。如[]【】这类的符号。不知大家是否有这个问题。
你好,zdir的说明文档网页打不开了,找不到帮助····
说明文档是这个地址:https://www.xiaoz.me/doc/doc-zdir
在win2008下读取目录,中文还是会乱码
windows乱码的问题一直没得到解决,linux不会有这个问题。
$text = file_get_contents($filePath);
//$encodType = mb_detect_encoding($text);
define(‘UTF32_BIG_ENDIAN_BOM’, chr(0x00) . chr(0x00) . chr(0xFE) . chr(0xFF));
define(‘UTF32_LITTLE_ENDIAN_BOM’, chr(0xFF) . chr(0xFE) . chr(0x00) . chr(0x00));
define(‘UTF16_BIG_ENDIAN_BOM’, chr(0xFE) . chr(0xFF));
define(‘UTF16_LITTLE_ENDIAN_BOM’, chr(0xFF) . chr(0xFE));
define(‘UTF8_BOM’, chr(0xEF) . chr(0xBB) . chr(0xBF));
$first2 = substr($text, 0, 2);
$first3 = substr($text, 0, 3);
$first4 = substr($text, 0, 3);
$encodType = “”;
if ($first3 == UTF8_BOM)
$encodType = ‘UTF-8 BOM’;
else if ($first4 == UTF32_BIG_ENDIAN_BOM)
$encodType = ‘UTF-32BE’;
else if ($first4 == UTF32_LITTLE_ENDIAN_BOM)
$encodType = ‘UTF-32LE’;
else if ($first2 == UTF16_BIG_ENDIAN_BOM)
$encodType = ‘UTF-16BE’;
else if ($first2 == UTF16_LITTLE_ENDIAN_BOM)
$encodType = ‘UTF-16LE’;
//下面的判断主要还是判断ANSI编码的·
if ($encodType == ”) {//即默认创建的txt文本-ANSI编码的
$content = iconv(“GBK”, “UTF-8”, $text);
} else if ($encodType == ‘UTF-8 BOM’) {//本来就是UTF-8不用转换
$content = $text;
} else {//其他的格式都转化为UTF-8就可以了
$content = iconv($encodType, “UTF-8”, $text);
}
在别的地方看到,不知道是否可用
换了php 7.3,解决了乱码问题
Windows PHP 7.3解决了乱码吗?
是的,WIN2008R2 + apache2.4.41 + PHP7.3.10 没有乱码
似乎视频只能在线播放mp4的,webm的就不行。可否添加更多媒体文件支持呢?
是的,只能播放.mp4和m3u8,前端解码能力有限,依赖浏览器支持更多格式不太可能。只能自行转码。
admin.php 500错误
什么文件也不显示
首页什么文件也不显示 。
UPUPW NGINX版PHP5.4
PHP需要大于5.6及以上。
请问如何删除顶部的滚动广告信息?
您好,捐赠版才可以删除。
索引文件无显示
只显示 文件索引 – 该数据缓存于2019-09-08 22:44:57
下面无目录显示
索引有24小时缓存,请参考帮助文档进行清理:https://www.xiaoz.me/doc/doc-zdir/maintain
已经照做,但还是不显示
是不是需要什么权限 或者需要开启什么函数
访问文件管理报错:Fatal error: Call to undefined function password_hash() in /www/wwwroot/aaa.solob.cn/functions/admin.php on line 24
php版本问题吗
PHP版本需要大于5.6哦
移动端访问不支持文件管理么?
移动端的话你自己在后面添加路径:/functions/admin.php 就可以进入文件管理了。
能设置伪静态吗,把/index.php?dir=去掉
抱歉,暂时不支持伪静态哦。
Warning: is_dir(): open_basedir restriction in effect. File(../..) is not within the allowed path(s): (/www/wwwroot/opt/:/tmp/:/proc/) in /www/wwwroot/opt/functions/indexes.php on line 20
打开文件索引时报错,请问怎么解决?
如果你用的宝塔面板的话在PHP设置里面,将Warning级别的错误提示关闭,不知道生产环境宝塔为什么要默认打开dispaly error
关闭display_errors后错误提示依旧存在
关闭后重启下PHP
重启后报错依旧
PHP重启后还是一样
文件索引是有缓存的(为了降低资源消耗,文件索引存在24小时缓存,您可以访问index.php?c=cache&del=cache清除当前缓存并重新生成索引。),参考下帮助文档:https://www.xiaoz.me/doc/doc-zdir/maintain
您好,有计划增加目录说明吗?就是在每个文件夹目录有个说明文档,就像这个https://cloud.b2fun.net/B:/Mirror/dd/cxthhhhh
缓存清理后正常了
文件管理器用户名密码多少啊?
不知道您看了帮助文档没有:https://www.xiaoz.me/doc/doc-zdir/install ,密码是在config.php自己设置的。
linux能解决中文问题就好了
Zdir是支持Linux中文显示的。