NetDisk 网盘分享
NetDisk 网盘分享(emlog 插件)
为你的 emlog 博客文章添加网盘资源分享模块。粘贴任意网盘分享链接,自动识别网盘类型并展示对应品牌图标,前台一键跳转下载,内置下载统计与 IP 去重防刷。
支持 夸克 / 百度 / 阿里云盘 / 蓝奏云 / 天翼云盘 / 迅雷云盘 / UC 网盘 / 光鸭云盘 / 123 网盘 / 其他网盘 共 10 类链接,未匹配到已知域名时自动归类为「其他网盘」。
- 插件名:NetDisk网盘分享
- 当前版本:v1.3
- 适用平台:emlog Pro(需 PHP 7.0+)
- 作者:LAO.CHEN
特性
编辑文章时的增强体验
- 编辑器内置「网盘分享」面板:写文章页工具栏点击「网盘分享」即可展开配置面板,无需记忆任何标签或短代码。
- 网盘自动识别:粘贴分享链接后,根据域名自动匹配网盘类型并选中;也可手动从下拉框指定。
- 图标与品牌色实时预览:选择网盘后即时显示对应的彩色图标预览,所见即所得。
- 链接实时校验:输入框即时校验链接是否为合法的
http:///https://地址,格式非法时给出错误提示,避免发布失效链接。 - 已知域名智能提示:当粘贴的链接不属于已支持的网盘域名时给出友好警告(仅提示,不阻止发布)。
- 每篇文章独立控制:可为单篇文章选择是否「显示下载模块」,发布、编辑、删除文章时数据自动同步增删。
丰富的前台展示
- 品牌化下载卡片:以各网盘官方品牌色 + SVG 矢量图标渲染下载卡片,观感统一且不需要外部图标库。
- 自定义资源名称:每条资源可单独填写标题;留空时自动使用后台设置的「默认资源标题」。
- 提取密码一键复制:分享链接带提取密码时,前台展示密码并提供「复制」按钮(剪贴板 API,自动降级兼容旧浏览器),复制成功有气泡提示。
- 下载跳转安全:链接以
target="_blank"新窗口打开,并带rel="noopener noreferrer",保证安全。 - 响应式卡片布局:完整适配移动端与桌面端。
下载统计与防刷
- IP 去重防刷:同一 IP 在配置的时间窗口内多次点击只计一次,统计真实不掺水。
- 可配置去重窗口:支持 1 小时 / 6 小时 / 12 小时 / 24 小时 / 48 小时 / 7 天,默认 24 小时。
- 多维统计口径:前台展示「今日 X 次 · 总计 X 次 · X 人下载」,全部基于去重后的数据。
- 异步统计不阻塞:点击下载通过
navigator.sendBeacon异步上报,即使用户立刻关闭页面也不丢数据。 - 后台数据看板:插件设置页汇总「总下载次数 / 独立 IP 数」,并按下载量展示 Top 20 资源排行榜(资源、网盘、下载次数、独立 IP)。
数据与安全设计
- 独立数据表:安装自动创建
lcbk_netdisk(分享配置)与lcbk_netdisk_stats(下载记录)两张表,与 emlog 业务数据隔离。 - 安全防护:所有 SQL 使用参数化取值前的
intval/addslashes处理;前台输出经htmlspecialchars转义,防注入与 XSS。 - 统计开关:可在后台一键关闭下载统计,关闭后前台不展示任何统计数字。
环境要求
| 项目 | 要求 |
|---|---|
| 博客程序 | emlog Pro |
| PHP 版本 | 7.0 及以上(使用短数组与空合并运算符) |
| 数据库 | MySQL(InnoDB,自动建表) |
兼容性说明:插件通过 emlog 的
addAction挂载点(adm_writelog_bar、log_related、save_log、del_log等)与Storage、DatabaseAPI 集成,仅适用于 emlog 6 及以上版本。
安装方法
将本插件(lcbk_netdisk 整个目录)安装到 emlog 中,二选一:
方式一:emlog 后台在线安装
- 进入 emlog 后台「插件」页面。
- 点击「上传插件」,选择本插件的 zip 压缩包并上传。
- 安装成功后点击「启用」。
方式二:手动上传
- 将
lcbk_netdisk目录整体上传至服务器的content/plugins/目录下。 - 进入 emlog 后台「插件」页面。
- 找到 NetDisk网盘分享,点击「启用」。
启用插件时会自动创建数据表,无需手动执行 SQL。卸载插件时将同时删除相关数据表与统计数据,请谨慎操作。
目录结构
content/plugins/lcbk_netdisk/
├── lcbk_netdisk.php # 插件主文件(挂载点、网盘类型、前台展示逻辑)
├── lcbk_netdisk_setting.php # 后台设置页(基础设置 + 下载统计看板)
├── lcbk_netdisk_admin.js # 后台写文章面板交互(自动识别/校验/预览)
├── lcbk_netdisk_front.js # 前台交互(异步统计、复制密码、气泡提示)
├── lcbk_netdisk_callback.php # 安装/升级/卸载钩子(自动建表、删表)
├── lcbk_netdisk_show.php # 前台统计接口 action=track
├── lcbk_netdisk.css # 前后台样式
└── preview.jpg # 效果预览图
使用教程
第一步:插件设置
进入 emlog 后台「插件 → NetDisk网盘分享 → 设置」。
- 默认资源标题:写文章时未单独填写资源名称时使用,例如「网盘资源下载」。建议设置为通用标题。
- 启用下载统计:开关打开后,每次点击下载卡片都会计入统计;关闭后前台不显示统计数字。
- 启用 IP 去重防刷:同一 IP 在指定时间窗口内重复点击只计一次,防止刷量。建议保持开启。
- 去重时间窗口:可选 1 小时 / 6 小时 / 12 小时 / 24 小时 / 48 小时 / 7 天,默认 24 小时。
设置完成后点击「保存设置」。右侧「下载统计」卡片会实时汇总所有资源的下载数据。
第二步:在文章中插入网盘资源
-
进入 emlog 后台,新建或编辑一篇文章。
-
在编辑器工具栏点击 「网盘分享」,展开配置面板。
-
填写以下内容:
字段 是否必填 说明 网盘类型 选填 支持手动选择;也可留空,粘贴链接后自动识别 分享链接 必填 粘贴完整的 http://或https://网盘分享链接提取密码 选填 网盘分享有提取码时填写,前台提供一键复制 资源名称 选填 自定义标题,留空则使用后台「默认资源标题」 显示下载模块 选填 默认勾选;取消勾选则文章不展示下载卡片 -
粘贴链接后观察面板反馈:
- 输入框根据域名自动选中对应网盘类型,图标预览同步切换;
- 若链接格式非法,面板会显示错误提示,保存时该模块会被自动停用;
- 若链接不属于已支持的网盘,会显示「未知域名」类提示,可手动指定「其他网盘」。
-
正常保存文章。
第三步:前台效果
发布后,在文章内容末尾会自动渲染下载卡片,包含:
- 左侧:网盘品牌色圆角图标;
- 中部:资源名称(标题)、网盘名称与下载统计(如「今日 12 次 · 总计 340 次 · 156 人下载」);
- 提取密码行:「提取密码」标签 + 密码文本 + 「复制」按钮(点击后气泡提示已复制);
- 右侧:品牌色下载按钮。
访客点击整张卡片即可在新窗口跳转到对应网盘页面;同时插件会在后台异步记录一次点击(自动按 IP 去重)。
第四步:查看统计数据
进入「插件 → NetDisk网盘分享 → 设置」页面右侧:
- 总下载次数 / 独立 IP 数:顶部两块汇总数字;
- 资源下载排行:按下载次数倒序展示 Top 20 资源,包含所属网盘与独立 IP 数,便于了解哪些资源受欢迎。
提示:下载计数基于访客 IP,若网站启用了 CDN 且未传递真实 IP(
REMOTE_ADDR为 CDN 节点),统计会偏向 CDN 出口 IP。本地部署 / 直连服务器时不受影响。
常见问题(FAQ)
Q1:为什么前台没有显示下载卡片?
依次检查:① 插件已在后台启用;② 该文章的「显示下载模块」已勾选;③ 分享链接已正确填写(链接为空时不展示);④ 当前前台模板正确触发了 emlog 的 log_related 挂载点(默认文章模板均触发,若使用极简自定义模板可能需要确认)。
Q2:下载数字一直没有变化? 可能原因:统计被后台关闭;或同一 IP 在去重窗口内已计过一次。可临时关闭「IP 去重防刷」验证。
Q3:链接填进去提示格式错误?
仅接受 http:// 与 https:// 开头的完整网址。请检查是否缺少协议前缀(例如漏掉 https://)或含多余空格。
Q4:复制密码按钮没反应?
「复制」依赖浏览器剪贴板能力。不支持剪贴板 API 的浏览器会走 execCommand 降级方案;若仍失败,请手动选中密码复制。
Q5:卸载插件会怎样?
会删除 lcbk_netdisk(分享配置)与 lcbk_netdisk_stats(下载统计)两张表。如有历史统计数据,卸载前请先备份数据库。
支持与许可
- 插件地址:emlog 插件中心
- 作者主页:LAO.CHEN
附件下载
-
md
下载README.md