# 软件发布平台 一个简单易用的软件发布管理系统,支持多版本管理和在线下载。 ## 功能特性 ✅ **后台管理系统** - 用户登录验证(默认用户名/密码: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. 安装步骤 1. 将项目文件上传到 Web 服务器 2. 确保 `data/` 目录有写权限(已设置为 777) 3. 访问网站首页,数据库会自动初始化 ### 3. 管理后台 访问 `/admin/` 进入管理后台 **默认登录信息:** - 用户名:`admin` - 密码:`admin` **功能说明:** #### 上传应用 1. 在管理面板点击"上传新应用" 2. 选择 APK 文件 3. 填写版本号(可选) 4. 填写版本描述(可选) 5. 点击"上传应用" #### 管理版本 - 查看所有已发布的版本 - 下载任意版本 - 删除不需要的版本 #### 网站配置 1. 点击"网站配置" 2. 修改网站标题 3. 修改软件说明 4. 上传新的 Logo(支持 JPG/PNG/GIF) 5. 点击"保存配置" #### 修改密码 1. 点击顶部导航的"修改密码" 2. 输入当前密码 3. 输入新密码(至少4位) 4. 确认新密码 5. 点击"修改密码" **重要提示:** 首次登录后请立即修改默认密码以提高安全性! ### 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,不传则返回最新版本 **响应示例:** ```json { "success": true, "file": "data/apps/1719223456_app.apk", "filename": "app.apk", "version": "1.0.0", "date": "2024-06-24 17:30:56" } ``` ## 安全建议 1. **修改默认密码** - 当前密码硬编码在 `admin/index.php` - 建议修改为复杂密码 2. **限制文件上传** - 当前仅允许 `.apk` 文件 - 可根据需要调整文件类型限制 3. **数据备份** - 定期备份 `data/` 目录 - 包含数据库和所有上传的文件 4. **访问控制** - 建议通过 Web 服务器配置限制 `/admin/` 访问 - 可添加 IP 白名单 ## 技术栈 - **后端:** 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 --- 如有问题或建议,欢迎反馈!