# 📁 项目文件管理器 一个功能强大的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! --- **享受高效的文件管理体验!** 🎉