# 轻量级音乐上传与随机播放系统 **Repository Path**: asdfjshf/MP3-API ## Basic Information - **Project Name**: 轻量级音乐上传与随机播放系统 - **Description**: 一个基于 PHP 的轻量级音乐上传与随机播放系统。支持批量上传 MP3 音乐文件,自动维护音乐列表,提供随机音乐接口,方便音乐播放器动态调用随机音乐。 - **Primary Language**: Unknown - **License**: AFL-3.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2025-05-24 - **Last Updated**: 2025-05-24 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ```markdown # 音乐上传与随机播放 API 一个基于 PHP 的轻量级音乐上传与随机播放系统。支持批量上传 MP3 音乐文件,自动维护音乐列表,提供随机音乐接口,方便音乐播放器动态调用随机音乐。 --- ## 功能特点 - 支持批量上传 MP3 文件,自动保存至 `/music/` 文件夹 - 自动生成并维护音乐列表文件 `music-list.json` - 提供 `rand-music.php` API,随机返回一个 MP3 音源链接(302 跳转) - 简单清爽的上传页面 `index.html` - 代码结构清晰,易于部署和扩展 --- ## 目录结构 ``` 你的域名/ │ ├── index.html # 上传页面,支持多文件上传 ├── upload.php # 处理上传逻辑,维护音乐列表 ├── rand-music.php # 随机音乐API,返回随机音乐跳转链接 └── music/ # 音乐存储目录 └── music-list.json # 音乐列表JSON文件(自动生成) ``` --- ## 快速部署 1. 确保服务器支持 PHP 并有写权限 2. 上传所有文件到服务器相应目录 3. 确保 `/music/` 文件夹存在且可写 4. 访问 `index.html` 页面上传音乐 5. 播放器音乐源设置为: ``` [https://你的域名/music-api/rand-music.php](https://你的域名/music-api/rand-music.php) ``` 即可随机播放音乐库中的音频 --- ## API 使用说明 - **上传音乐**:访问 `index.html`,通过表单上传 MP3 文件(支持批量) - **随机音乐 API**:访问 `rand-music.php`,会随机跳转到一个 MP3 文件地址 播放器只需请求 `rand-music.php`,即可自动获取随机音乐链接,无需额外处理。 --- ## 注意事项 - 当前仅支持 `.mp3` 格式文件上传 - 上传文件名会自动过滤不安全字符,避免冲突 - 推荐对上传接口做访问限制,防止滥用 - 跨域调用播放器时,可能需要配置服务器 CORS 规则 --- ## 未来计划(有空的话,很简单,但是没心情) - 支持更多音频格式 - 添加用户权限管理,保护上传接口(目前可以策略,在第5行开始>>) - 提供音乐删除及管理后台 - 增加音乐标签显示支持 -第5行— [ ✅ 宝塔面板中推荐设置方式: 方式一:对 index.html 和 upload.php 设置访问密码 打开宝塔面板 → 网站 → 找到你的网站。 选择“目录保护”功能。 添加保护路径: /index.html /upload.php 设置账号和密码(即登录验证) 这样只有访问上传页面和提交上传请求才需要输入密码,而 rand-music.php 和 /music/ 目录完全不受影响。 方式二:更安全推荐(仅上传路径验证) 上传页面(index.html)和 upload.php 可能会被直接访问,为了安全性更高,你也可以考虑: 创建一个新目录如 /admin/ 把 index.html 和 upload.php 放到 /admin/ 目录下 只对 /admin/ 设置宝塔目录访问限制 结构如下: 你的域名/ ├── admin/ │ ├── index.html ← 上传页面 │ └── upload.php ← 上传逻辑 ├── rand-music.php ← API接口(无需限制) ├── music/ └── music-list.json 在宝塔面板中只对 /admin/ 设置访问限制即可。 ] --- ## 许可证 MIT License --- ## 联系方式 有任何建议或问题,欢迎在 Gitee 提交 Issue 或邮件联系: your.email@example.com ```