161 lines
4.0 KiB
Markdown
161 lines
4.0 KiB
Markdown
# 📁 项目文件管理器
|
||
|
||
一个功能强大的Web文件管理器,支持文件上传、下载、批量操作和文件夹压缩下载。
|
||
|
||
## ✨ 主要功能
|
||
|
||
### 🌐 两种访问方式
|
||
|
||
1. **Web界面** - 图形化文件管理界面(推荐)
|
||
- 地址:`https://your-domain.com/public/file-manager.html`
|
||
- 特点:直观易用,支持拖拽上传
|
||
|
||
2. **REST API** - 完整的文件管理API
|
||
- 基础地址:`https://your-domain.com/api/v1/files`
|
||
- 特点:可集成到任何应用
|
||
|
||
### 🚀 核心功能
|
||
|
||
#### 文件操作
|
||
- 📤 **上传文件** - 支持拖拽上传、多文件上传
|
||
- 📥 **下载文件** - 单文件直接下载
|
||
- 📦 **文件夹压缩下载** - 一键下载整个文件夹为ZIP
|
||
- 📋 **批量下载** - 选择多个文件/文件夹统一打包下载
|
||
- 📁 **创建文件夹** - 新建目录结构
|
||
- ✏️ **重命名** - 文件和文件夹重命名
|
||
- 🗑️ **删除** - 安全删除文件和文件夹
|
||
- 🔍 **搜索** - 快速搜索文件
|
||
- 📊 **文件信息** - 查看文件详细信息和预览
|
||
|
||
#### 批量操作
|
||
- ☑️ **全选/取消全选** - 快速选择所有文件
|
||
- 📦 **批量下载** - 多文件打包下载
|
||
- 🎯 **批量管理** - 支持后续扩展(批量删除、移动等)
|
||
|
||
## 🛠️ API 接口
|
||
|
||
### 文件列表
|
||
```http
|
||
GET /api/v1/files/list?path=uploads&recursive=false
|
||
```
|
||
|
||
### 文件上传
|
||
```http
|
||
POST /api/v1/files/upload
|
||
Content-Type: multipart/form-data
|
||
```
|
||
|
||
### 文件下载
|
||
```http
|
||
GET /api/v1/files/download/{file_path}
|
||
```
|
||
|
||
### 文件夹压缩下载
|
||
```http
|
||
POST /api/v1/files/download-folder-zip
|
||
Content-Type: application/json
|
||
{
|
||
"path": "uploads"
|
||
}
|
||
```
|
||
|
||
### 批量压缩下载
|
||
```http
|
||
POST /api/v1/files/download-multiple-zip
|
||
Content-Type: application/json
|
||
{
|
||
"paths": ["uploads", "data/123"],
|
||
"filename": "batch_download.zip"
|
||
}
|
||
```
|
||
|
||
### 其他接口
|
||
- `POST /api/v1/files/create-folder` - 创建文件夹
|
||
- `POST /api/v1/files/rename` - 重命名
|
||
- `POST /api/v1/files/move` - 移动文件
|
||
- `POST /api/v1/files/copy` - 复制文件
|
||
- `DELETE /api/v1/files/delete` - 删除文件
|
||
- `GET /api/v1/files/search` - 搜索文件
|
||
- `GET /api/v1/files/info/{path}` - 获取文件信息
|
||
|
||
## 🎨 界面特性
|
||
|
||
### 响应式设计
|
||
- ✅ 桌面端完整功能
|
||
- ✅ 移动端友好界面
|
||
- ✅ 自适应布局
|
||
|
||
### 用户体验
|
||
- 🎨 现代化UI设计
|
||
- 📱 直观的图标和颜色
|
||
- ⚡ 快速响应的交互
|
||
- 💬 友好的提示信息
|
||
|
||
### 高级功能
|
||
- 📁 面包屑导航
|
||
- 🔍 实时搜索过滤
|
||
- 📊 文件信息预览
|
||
- 🎯 智能文件类型识别
|
||
|
||
## 🔧 技术特性
|
||
|
||
### 安全性
|
||
- 🛡️ 路径验证和限制
|
||
- 📏 文件大小限制(500MB)
|
||
- 🔢 文件数量限制(10000个)
|
||
- 🚫 隐藏文件过滤
|
||
|
||
### 性能优化
|
||
- ⚡ 异步文件操作
|
||
- 📦 内存中ZIP压缩
|
||
- 🔄 流式文件下载
|
||
- 💾 智能缓存控制
|
||
|
||
### 兼容性
|
||
- 🌐 标准WebDAV协议
|
||
- 📱 所有现代浏览器
|
||
- 🔧 可扩展的API设计
|
||
- 📊 完整的错误处理
|
||
|
||
## 📝 使用方法
|
||
|
||
### 快速开始
|
||
1. 访问文件管理器:`https://your-domain.com/public/file-manager.html`
|
||
2. 使用拖拽或点击按钮上传文件
|
||
3. 点击文件夹旁的"下载ZIP"按钮下载整个文件夹
|
||
4. 使用"批量操作"模式选择多个文件统一下载
|
||
|
||
### 高级用法
|
||
1. 点击"批量操作"进入批量选择模式
|
||
2. 使用"全选"快速选择所有文件
|
||
3. 混合选择文件和文件夹进行批量下载
|
||
4. 使用搜索功能快速定位文件
|
||
|
||
## 🚀 部署说明
|
||
|
||
### 环境要求
|
||
- Python 3.8+
|
||
- FastAPI
|
||
- 现代浏览器
|
||
|
||
### 部署步骤
|
||
1. 安装依赖:`pip install fastapi uvicorn`
|
||
2. 启动服务:`uvicorn fastapi_app:app --host 0.0.0.0 --port 8001`
|
||
3. 访问:`http://localhost:8001/public/file-manager.html`
|
||
|
||
### 配置选项
|
||
- `PROJECTS_DIR`: 项目根目录(默认:`projects`)
|
||
- `MAX_ZIP_SIZE`: 最大ZIP文件大小(默认:500MB)
|
||
- `MAX_FILES`: 最大文件数量(默认:10000)
|
||
|
||
## 📄 许可证
|
||
|
||
MIT License - 详见 LICENSE 文件
|
||
|
||
## 🤝 贡献
|
||
|
||
欢迎提交 Issue 和 Pull Request!
|
||
|
||
---
|
||
|
||
**享受高效的文件管理体验!** 🎉 |