源码系统概览
文章正文
这是一款名为「闪图」的阅后即焚 / 临时文件分享 PHP 源码,核心只有一个 index.php 文件。
它的思路是:用户上传文件后,系统生成一个带 token 的访问链接;
访问者通过该链接查看文件,每看一次计数加一;
当查看次数达到设定上限,服务器自动删除原始文件与记录,实现「看完即焚」。
整套逻辑不依赖数据库,使用 JSON 扁平文件记录,部署极简。
源码简介
程序入口 index.php 在配置区定义了存储目录 STORAGE_DIR、数据文件 DB_FILE(database.json)、以及单次分享允许的最大查看次数区间 MAX_VIEWS_MIN / MAX_VIEWS_MAX。
上传时,文件被保存到 storage/ 目录,token 与文件名、最大查看次数、当前次数写入 database.json;访问时通过 ?token= 参数定位记录,校验是否超限,未超限则输出文件内容(按 MIME 类型)并累加次数,达到上限即 unlink 删除文件并清除记录,随后渲染过期提示页。
整个过程围绕 token 寻址,无用户系统、无后台,是一个典型的极简自毁分享器。
适用场景
适用于需要「一次性」传递敏感材料的场景:临时私密图片 / 文档分享、阅后销毁的验证码或凭证、对内网用户的短时文件下发等。
它比长期网盘更适合「看完就删」的轻量需求,也能作为自毁消息类功能的原型。
功能亮点
真正单文件,拷贝即部署;
基于 token 的访问控制,链接即凭证;
查看次数自毁,保护一次性内容;
零数据库,用 database.json 扁平存储,迁移方便;存储目录创建时设为 0700 权限,相对克制。
逻辑清晰,非常适合学习文件处理与生命周期管理。
技术架构与部署指南
| 维度 | 本套源码 | 同类通用方案 |
|---|---|---|
| 技术栈 | 前端:HTML 表单 + 原生 JavaScript 后端:PHP(单文件 index.php) 数据库:无(dat |
依具体方案选型,需自行搭建与维护 |
| 部署方式 | 将 index.php 上传到网站可访问目录即可。 | 多托管于第三方平台或订阅云服务 |
| 功能侧重 | 真正单文件,拷贝即部署; | 功能通用,定制深度有限 |
| 数据归属 | 数据自持,部署在自有服务器,不出站 | 数据通常留存于服务商侧 |
| 成本模式 | 获取后自主部署,无持续授权费用 | 通常按订阅或调用量计费 |
技术栈与运行环境
前端:HTML 表单 + 原生 JavaScript
后端:PHP(单文件 index.php)
数据库:无(database.json 扁平文件)
运行环境:PHP 7.x + Web 服务器,storage/ 需可写
其他依赖:无
安装与部署提示
将 index.php 上传到网站可访问目录即可。
首次访问时脚本会自动创建 storage/ 目录(权限 0700)并在首次写入时生成 database.json。
通过页面表单选择文件上传,提交后获得带 token 的分享链接;把链接发给对方,对方打开 ?token=xxx 即可查看。
如需调整可查看次数,修改配置区的 MAX_VIEWS_MIN / MAX_VIEWS_MAX 即可限定范围。
截图与演示说明
上传表单位于 index.php 首页,提供文件选择框与上传按钮;上传成功后会展示一段带 token 的访问地址,复制即可分享。
访问端打开该地址时,脚本按 database.json 中记录的文件类型用对应 Content-Type 输出文件内容(图片直接渲染、其他类型触发下载),并实时累加查看次数。
当次数达到上限,页面调用 renderExpiredPage 渲染「文件已销毁 / 链接已失效」提示;若 token 不存在则渲染 renderInvalidLinkPage 提示链接无效。
整个过程无独立后台,所有状态都体现在这两个结果页上。
常见问题
问:文件保存在哪里,过期后还能找回吗?
文件保存在脚本同级的 storage/ 目录,记录存放在 database.json。达到查看上限后文件会被 unlink 删除且记录清除,无法恢复,这正是「阅后即焚」的设计。
问:如何控制别人能看几次?
在 index.php 配置区设置 MAX_VIEWS_MIN 与 MAX_VIEWS_MAX 限定可设范围,上传时选择目标次数即可;到达该次数后文件自动销毁。
问:需要数据库吗?
不需要。所有分享记录都用 database.json 这个 JSON 文件存储,省去了部署数据库的麻烦。
安全风险提示
本源码未检出 eval / base64_decode / shell_exec / gzinflate 等高风险函数,代码层面较为干净。
但需注意:
第一,阅后即焚特性可能被用于传播违规或侵权内容,请仅限个人合法用途,不对公网开放或做好访问控制;
第二,token 为关键凭证,若生成算法可预测需加强随机性;
第三,storage/ 目录应禁止脚本执行与目录列表,避免上传文件被直接执行;
第四,建议限制上传文件类型与体积,并加访问频率限制以防滥用。
下载说明
源码仅供学习研究、测试部署和二次开发参考,商用前请自行确认授权、版权和安全风险。
阅后即焚 / 闪图类功能易被用于传播违规材料,使用者须严格遵守法律法规,仅用于个人合法的文件临时传递,不得用于任何违法违规内容的分发。