92f53a8bbba85b20318fe96b30fe11af62964a3f
软件发布平台
一个简单易用的软件发布管理系统,支持多版本管理和在线下载。
功能特性
✅ 后台管理系统
- 用户登录验证(默认用户名/密码:admin/admin)
- 密码加密存储(使用 PHP password_hash)
- 在线修改密码功能
- 上传 APK 文件到服务器
- 版本管理(查看、删除)
- 网站配置(标题、说明、Logo)
✅ 前端展示
- 显示所有已发布的应用版本
- 最新版本优先显示
- 版本详情(版本号、描述、上传时间、文件大小)
- 一键下载功能
✅ 数据存储
- 使用 SQLite 文件数据库
- APK 文件存储在
data/apps/目录 - Logo 文件存储在
data/uploads/目录 - 用户密码加密存储
目录结构
php_app_downloader/
├── index.php # 主页(显示所有版本)
├── download.php # 下载接口
├── logo.png # 默认 Logo
├── admin/ # 管理后台
│ ├── index.php # 登录页面
│ ├── dashboard.php # 管理面板
│ ├── upload.php # 文件上传处理
│ ├── config.php # 配置管理
│ ├── delete.php # 删除应用
│ ├── logout.php # 退出登录
│ └── auth.php # 认证中间件
├── includes/ # 共享代码
│ ├── db.php # 数据库连接
│ └── functions.php # 通用函数
├── data/ # 数据存储(需要写权限)
│ ├── apps/ # APK 文件
│ ├── uploads/ # 上传的 Logo
│ └── database.db # SQLite 数据库
└── assets/
└── admin.css # 管理后台样式
使用说明
1. 环境要求
- PHP 7.0+
- SQLite 支持(PHP 默认包含)
- Web 服务器(Apache/Nginx)
2. 安装步骤
- 将项目文件上传到 Web 服务器
- 确保
data/目录有写权限(已设置为 777) - 访问网站首页,数据库会自动初始化
3. 管理后台
访问 /admin/ 进入管理后台
默认登录信息:
- 用户名:
admin - 密码:
admin
功能说明:
上传应用
- 在管理面板点击"上传新应用"
- 选择 APK 文件
- 填写版本号(可选)
- 填写版本描述(可选)
- 点击"上传应用"
管理版本
- 查看所有已发布的版本
- 下载任意版本
- 删除不需要的版本
网站配置
- 点击"网站配置"
- 修改网站标题
- 修改软件说明
- 上传新的 Logo(支持 JPG/PNG/GIF)
- 点击"保存配置"
修改密码
- 点击顶部导航的"修改密码"
- 输入当前密码
- 输入新密码(至少4位)
- 确认新密码
- 点击"修改密码"
重要提示: 首次登录后请立即修改默认密码以提高安全性!
4. 前端使用
- 访问网站首页查看所有版本
- 点击"立即下载"按钮下载对应版本
- 右下角有"管理后台"快捷入口
数据库结构
apps 表
存储应用版本信息
| 字段 | 类型 | 说明 |
|---|---|---|
| id | INTEGER | 主键,自增 |
| filename | TEXT | 存储的文件名 |
| original_name | TEXT | 原始文件名 |
| version | TEXT | 版本号 |
| description | TEXT | 版本描述 |
| upload_time | DATETIME | 上传时间 |
| file_size | INTEGER | 文件大小(字节) |
config 表
存储网站配置
| 字段 | 类型 | 说明 |
|---|---|---|
| key | TEXT | 配置键(主键) |
| value | TEXT | 配置值 |
预设配置项:
site_title- 网站标题site_description- 软件说明logo_path- Logo 路径
users 表
存储用户账号信息
| 字段 | 类型 | 说明 |
|---|---|---|
| id | INTEGER | 主键,自增 |
| username | TEXT | 用户名(唯一) |
| password | TEXT | 加密后的密码 |
| created_at | DATETIME | 创建时间 |
API 接口
下载接口
GET download.php?id={app_id}
参数:
id(可选) - 应用 ID,不传则返回最新版本
响应示例:
{
"success": true,
"file": "data/apps/1719223456_app.apk",
"filename": "app.apk",
"version": "1.0.0",
"date": "2024-06-24 17:30:56"
}
安全建议
-
修改默认密码
- 当前密码硬编码在
admin/index.php - 建议修改为复杂密码
- 当前密码硬编码在
-
限制文件上传
- 当前仅允许
.apk文件 - 可根据需要调整文件类型限制
- 当前仅允许
-
数据备份
- 定期备份
data/目录 - 包含数据库和所有上传的文件
- 定期备份
-
访问控制
- 建议通过 Web 服务器配置限制
/admin/访问 - 可添加 IP 白名单
- 建议通过 Web 服务器配置限制
技术栈
- 后端: PHP + SQLite
- 前端: 原生 HTML/CSS/JavaScript
- 样式: 现代化渐变设计,响应式布局
更新日志
v2.1 (2024-06-24)
- ✅ 新增用户密码管理功能
- ✅ 密码使用 password_hash 加密存储
- ✅ 支持在线修改密码
- ✅ 添加 users 数据表
- ✅ 数据库自动升级机制
v2.0 (2024-06-24)
- ✅ 新增管理后台系统
- ✅ 新增用户登录功能
- ✅ 支持多版本管理
- ✅ 支持在线上传 APK
- ✅ 支持网站配置管理
- ✅ 重写前端样式
- ✅ 使用 SQLite 数据库
- ✅ PHP 自动创建所需目录
v1.0
- 基础下载功能
- 显示最新版本
许可证
MIT License
如有问题或建议,欢迎反馈!
Languages
PHP
88%
CSS
12%