本站有许多的小文件需要分享,虽然说有各种网盘程序可以存储,但是考虑到各大云盘都是会员制且需要指定的客户端,极其降低用户的下载体验。而且还会删除用户的资源,所以自己弄一套小文件分享系统不香吗

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/