diff --git a/README.md b/README.md index 9da62c1..60ee429 100644 --- a/README.md +++ b/README.md @@ -40,70 +40,9 @@ npx http-server -p 8000 | 方法 | 路径 | 描述 | 请求体 | 响应 | |------|------|------|--------|------| | GET | /api/apps | 获取App列表 | - | `[{id: string, name: string, fileName: string, date: string}]` | -| POST | /api/apps | 上传App | multipart/form-data
`name`: App名称(可选,不填则使用文件名作为默认值)
`file`: 文件 | `{success: boolean, message?: string}` | +| POST | /api/apps | 上传App | multipart/form-data
`name`: App名称
`file`: 文件 | `{success: boolean, message?: string}` | | GET | /api/apps/:id | 下载指定App | - | 文件流 | -#### 后端实现示例(Node.js + Express) - -```javascript -const express = require('express'); -const multer = require('multer'); -const cors = require('cors'); - -const app = express(); -const upload = multer({ dest: 'uploads/' }); - -app.use(cors()); - -// 模拟数据存储 -let apps = []; - -// 获取App列表 -app.get('/api/apps', (req, res) => { - res.json(apps); -}); - -// 上传App -app.post('/api/apps', upload.single('file'), (req, res) => { - let { name } = req.body; - const file = req.file; - - if (!file) { - return res.json({ success: false, message: '缺少文件' }); - } - - // 如果name为空,使用文件名作为默认值(去除扩展名) - if (!name || !name.trim()) { - name = file.originalname.replace(/\.[^/.]+$/, ''); - } - - const app = { - id: Date.now().toString(), - name, - fileName: file.originalname, - date: new Date().toLocaleString('zh-CN') - }; - - apps.unshift(app); - res.json({ success: true }); -}); - -// 下载App -app.get('/api/apps/:id', (req, res) => { - const app = apps.find(a => a.id === req.params.id); - if (!app) { - return res.status(404).json({ success: false, message: 'App不存在' }); - } - - // 实际实现中,这里应该返回真实的文件流 - res.send('文件下载功能待实现'); -}); - -app.listen(3000, () => { - console.log('Server running on port 3000'); -}); -``` - ## 技术栈 - HTML5 @@ -138,7 +77,6 @@ app.listen(3000, () => { 1. 在下载区域找到要下载的App 2. 点击"下载"按钮即可开始下载 -3. 点击"复制直链"按钮可以复制App的直接下载链接 ## 自定义配置 @@ -158,17 +96,6 @@ const ADMIN_PASSWORD = 'your_new_password'; const API_BASE_URL = 'http://your-backend-url:port/api'; ``` -### 自定义样式 - -CSS选择器保持不变,可以直接修改 `style.css` 文件来自定义样式。 - -## 浏览器兼容性 - -- Chrome 60+ -- Firefox 55+ -- Safari 12+ -- Edge 79+ - ## 注意事项 1. 默认使用localStorage存储,数据只保存在浏览器中