本站有许多的小文件需要分享,虽然说有各种网盘程序可以存储,但是考虑到各大云盘都是会员制且需要指定的客户端,极其降低用户的下载体验。而且还会删除用户的资源,所以自己弄一套小文件分享系统不香吗
Directory Lister 这套系统最直观的感受就是轻量,点击文件就能下载。
说一点需要注意的坑。虽然文档里说php7.3+ 但是我用这个版本的php就报了各种错误。我的环境是 php7.4 nginx 1.18.0 需要安装 fileinfo
扩展
将程序上传到根目录后 复制 .env.example 文件为 .env 编辑 .env 文件修改配置变量
; 是否开启 debug 模式,便于出错时查看错误信息定位问题 APP_DEBUG=false ; 设置显示语言,语言文件位于 app/translations 目录下 APP_LANGUAGE=en ; 是否开启暗色主题 DARK_MODE=false ; 是否直接渲染 Readme 文件 DISPLAY_READMES=true ; Readme 文件渲染时是否在页面顶部 READMES_FIRST=false ; 是否开启压缩下载 ZIP_DOWNLOADS=true ; 是否启用 GA 分析,接受字符串形式 ID GOOGLE_ANALYTICS_ID=false ; 是否启用 MA 分析,接受字符串形式 URL MATOMO_ANALYTICS_URL=false ; 是否启用 MA 分析,接受字符串形式 ID MATOMO_ANALYTICS_ID=false ; 自定义文件/文件夹排序 ; 默认值 type, 其他可选 natural, name, accessed, changed, modified, 自定义函数 ; 自定义函数 \DI\value() 接受两个参数 \SplFileInfo 对象 ; 例如: ; 'sort_order' => \DI\value( ; function (SplFileInfo $file1, SplFileInfo $file2) { ; return strcmp($file1->getRealPath(), $file2->getRealPath()); ; }) ; ); SORT_ORDER=type ; 是否反转排序 REVERSE_SORT=false ; 是否隐藏特殊文件/文件夹,比如 index.php 和 app 文件夹 HIDE_APP_FILES=true ; 是否隐藏版本控制相关文件/文件夹,比如 Git 和 Mercurial HIDE_VCS_FILES=true ; 设置时间格式 ; 完整格式化变量参考:https://www.php.net/manual/en/function.date.php#refsect1-function.date-parameters DATE_FORMAT="Y-m-d H:i:s" ; 设置时区 ; 完整 PHP 时区列表:https://www.w3school.com.cn/php/php_ref_timezones.asp TIMEZONE="UTC" ; 设置可被 HASH 文件大小的上限(字节,byte),防止访问大文件超时错误 ; 接受 0 - 9223372036854775807 的整数 MAX_HASH_SIZE=1000000000
关于隐藏文件。需要在根目录创建一个.hidden
文件夹,把需要隐藏的文件拖进去就好了
参考资料:https://github.com/DirectoryLister/DirectoryLister/wiki
部分资源:https://blog.233so.com/2020/06/build-application-archive-with-directory-lister/