视频搭建部署教程:
用途比较广泛,支持文件夹分类,用作资料展示也是一个不错的选择。
☁️ GZ网盘系统
基于 PHP + MySQL 的轻量级私有云存储解决方案,原生 SPA 前端 + 独立管理后台,开箱即用、易于二开。本文从开发工程师视角,系统讲解其架构设计、功能模块、核心业务流程与关键特性。
1系统适用对象
站在开发工程师视角,GZ网盘系统定位于”轻量、可控、易二开”的私有云存储,下列场景可低成本直接落地或在其基础上二次开发。
中小型企业
内部文档共享、部门资料归档、跨终端文件同步,替代公共网盘降本增效
开发团队 / 站长
需快速搭建私有文件服务、资源分发站,源码可控便于定制功能与对接业务
教育 / 团队协作
课件分发、作业收集、团队内即时沟通+文件传输,内置聊天与好友体系
个人 / 私有云玩家
NAS、VPS 自建云盘,支持 FTP 远程存储挂载,签到扩容、VIP 分级运营
2系统架构概述
采用”前后端分离 + 单体部署”的轻量架构:后端纯 PHP 提供 JSON API,前端原生 JS 渲染 SPA,MySQL 持久化,存储层通过适配器模式抽象本地与 FTP 两种后端。
- 后端:纯原生 PHP,无任何框架,入口
config.php统一初始化 - 数据库:MySQL + PDO 预处理,
db.php单例连接,强制utf8mb4 - 前端:原生 JS 单页应用
app.js,无 Vue/React 依赖 - 认证:PHP Session +
password_hash哈希 - 存储:适配器模式,本地与 FTP 可切换
├─ index.php # SPA 入口
├─ admin/index.php # 独立管理后台
├─ share_view.php # 分享公开页
├─ install.php # 安装向导
├─ config.php / db.php
├─ api/ # 10 个 API 端点
├─ includes/ # auth / storage
├─ assets/ # css / js / img
└─ uploads/ # 文件存储根
3功能模块详细介绍
系统分为”用户前台”与”管理后台”两端。以下所有界面均为系统真实运行截图(本地同源码环境渲染),1:1 还原实际操作界面。
3.1 用户前台(移动端优先 SPA)
前台采用底部五栏导航(首页 / 文件 / 传输 / 信息 / 我的),响应式适配移动端,支持 PWA 离线安装。以下为 admin 账号登录后的真实界面。
首页(Home)
- 存储概览:已用/总配额可视化进度条
- 分类入口:图片/视频/音乐/文档/压缩一键筛选
- 最近文件:按
created_at倒序展示 - 全局搜索:调用
api/files.php?act=search - 通知铃铛:未读消息与系统通知
文件(Files)
- 目录树:parent_id 父子结构 + 面包屑导航
- 新建 / 重命名 / 移动 / 收藏:完整文件操作
- 回收站:软删除
is_deleted,可还原/彻底删除/清空 - 批量选择:长按进入批量模式,支持打包下载
- 分享:生成链接 + 密码 + 有效期
传输(Transfer)
- 上传/下载双 Tab,状态:running/completed/failed
- 分块上传:2MB 分块,支持大文件(≤500MB)
- 进度条:
transferred/file_size实时百分比 - 断点续传:下载端 HTTP Range 206 支持
- 记录清理:清除已完成 / 清除全部
信息(Info · 即时聊天)
- 会话列表:按最后消息时间排序,未读红点
- 消息类型:text / file / image,可发文件
- 好友体系:搜索用户 → 发请求 → 双向接受
- 历史记录:向上翻页加载更多,自动标已读
- 删除会话:发送/接收方独立软删除
我的(Mine · 个人中心)
聚合 9 个二级 overlay 页面:个人资料(昵称/邮箱/头像/改密)、配额信息、VIP 中心(等级/到期/订单)、每日签到(+50MB 空间)、我的收藏、我的分享、回收站、FTP 配置、通知中心、隐私与安全、清理空间。
3.2 管理后台(admin/index.php)
独立后台单文件实现,仅 role=admin 可访问,左侧暗色导航 + 右侧数据面板。以下为真实后台截图。
控制台(Dashboard)
六大核心指标:总用户、VIP 用户、文件总数、存储用量、活跃分享、今日上传;数据实时聚合自 MySQL。
用户管理
分页列表 + 关键词搜索;可编辑配额(GB)、VIP 等级、状态(启用/禁用)、角色(user/vip/admin)、重置密码。
存储统计
按 MIME 分类统计容量(图片/视频/音频/文档/压缩包),Top 10 占用用户排行,每日上传量曲线。
分享管理
全站分享列表,含分享人、文件、浏览/下载次数、过期状态;支持一键吊销(status=0)。
系统设置
站点名称、默认配额、存储类型(local/ftp)、是否允许注册、VIP 横幅 URL;KV 表 settings 持久化。
4核心业务流程说明
以”大文件上传”与”文件分享下载”两条最具代表性的链路为例,展示前后端协作时序。
4.1 大文件分块上传流程
4.2 文件分享与公开下载流程
4.3 即时聊天消息流转
-- messages 关键字段
from_user_id, to_user_id -- 双向定位会话
content, msg_type, file_id -- text/file/image 三态
is_read -- 未读计数依据
is_deleted_by_sender -- 发送方独立软删
is_deleted_by_receiver -- 接收方独立软删
会话列表通过 CASE WHEN from_user_id=? THEN to_user_id ELSE from_user_id END 聚合 peer_id,取最后一条消息与未读数;好友关系采用双向写入 friends 表,宽松模式下首次发消息自动建立关系。
5关键特性展示
以下特性是 GZ 网盘区别于普通”上传下载脚本”的核心竞争力,均已在源码中落地实现。
Storage 类统一 put/stream/delete/move 接口,local 与 ftp 可切换;FTP 支持被动模式、代理下载与直链重定向。
2MB 分块写入临时目录,chunk_finish 合并;下载端识别 HTTP_RANGE 返回 206 Partial Content,弱网可续传。
16 位 token,可选密码与过期天数;独立统计浏览/下载次数;后台可吊销;公开页无需登录。
用户具备 vip_level/vip_expire;每日签到 checkins 表去重,自动 storage_limit + 50MB,形成留存闭环。
好友体系 + 会话列表 + 文件/图片消息 + 未读红点,无需第三方 IM 即可满足团队内部沟通。
全量 PDO 参数化查询防注入;password_hash 哈希;API 层 require_login() + 后台 role=admin 双重校验。
install.php 引导填写 MySQL 信息生成 config.local.php;BASE_URL 自动识别根/子目录部署。
manifest.json 支持添加到主屏幕;底部 Tab + 触摸交互,移动端原生 App 级体验。
每用户独立 storage_used/storage_limit,上传前 check_quota() 校验;后台可按 GB 调整,回收站清空释放空间。
6与 FastAdmin 后台框架对比
FastAdmin 是基于 ThinkPHP 的经典后台开发框架,常被作为 PHP 后台参考标准。下表从开发工程师视角做多维度对比,便于评估 GZ 网盘的定位与二开成本。
| 维度 | FastAdmin(ThinkPHP) | GZ 网盘系统 | 结论 |
|---|---|---|---|
| 底层框架 | ThinkPHP 5/6 + FastAdmin 扩展 | 纯原生 PHP,无框架 | 定位不同 |
| 数据库 | MySQL + ThinkPHP ORM/查询构造器 | MySQL + PDO 原生预处理(db.php 单例) | 均 MySQL |
| 后台生成 | CRUD 代码生成器、菜单/权限/字段一键生成 | 单文件 admin/index.php 手写 5 模块 | FastAdmin 强 |
| RBAC 权限 | 完整角色-菜单-按钮三级权限 | 仅 role: user/vip/admin 简单角色 | FastAdmin 强 |
| 业务专精 | 通用后台,需自行开发网盘业务 | 开箱即用的网盘全功能(上传/分享/聊天/配额) | GZ 更专 |
| 前端 | Bootstrap + RequireJS + 后台模板 | 原生 JS SPA,移动端优先,PWA 支持 | 各有侧重 |
| 大文件上传 | 需自行集成分块/断点续传 | 内置 2MB 分块 + HTTP 206 续传 | GZ 内置 |
| 存储后端 | 本地为主,扩展需自定义 | 适配器模式内置 local / FTP | GZ 内置 |
| 即时通讯 | 无,需集成第三方 | 内置好友 + 会话 + 文件消息 | GZ 内置 |
| 二开成本 | 需熟悉 ThinkPHP + FastAdmin 约定 | 纯原生 PHP,读懂即可改,无学习曲线 | GZ 更低 |
| 适用场景 | 企业通用后台 / CMS / ERP | 私有云盘 / 文件共享 / 资源分发 | 互补 |
- P1 · 业务为网盘/文件管理 → 直接采用 GZ 网盘,开箱即用,二开成本低;若需复杂权限,可在其基础上引入 RBAC 表。
- P2 · 需通用后台 + 网盘仅为一个模块 → 以 FastAdmin 为底座,将 GZ 网盘的
files/share/transfer逻辑移植为 FastAdmin 控制器。 - P3 · 已有 FastAdmin 项目,需补网盘能力 → 复用 GZ 的
storage.php适配器与分块上传协议,对接 FastAdmin 的用户体系。
7部署与价值总结
快速部署三步
环境要求
- PHP ≥ 7.2(推荐 8.0+),启用
pdo_mysql、zip(打包下载)、ftp(FTP 后端可选) - MySQL ≥ 5.7,字符集
utf8mb4 - 上传限制:
php.ini中upload_max_filesize、post_max_size需大于分块大小
核心价值
无框架、无构建工具,源码即所见,单机即可跑,部署门槛极低。
网盘全功能闭环:上传/下载/分享/聊天/配额/VIP/签到/后台,无需二次集成。
纯原生 PHP + MySQL,每一行可审计可改写,适合对供应链有要求的私有部署。








暂无评论内容