# 📁 文件管理器 一个类似 nginx autoindex 的文件管理器,支持实时显示文件变动、在线上传/删除/移动/重命名等操作。 ## 功能特性 ### 📂 文件浏览 - 目录导航和面包屑路径 - 文件列表显示(名称、大小、修改时间) - Emoji 图标显示文件类型 - 支持进入子目录和返回上级 ### 📤 上传功能 - 单文件上传 - 批量文件上传 - 拖拽上传支持 ### 📥 下载功能 - 单文件下载 - 批量文件打包下载(ZIP) - 整个文件夹下载(ZIP) ### ✏️ 文件操作 - 文件删除(支持批量) - 文件重命名 - 文件移动(支持跨目录) ### 👁️ 预览功能 - 图片预览 - 文本文件预览 - PDF 文件预览 ### 🔄 实时监控 - 文件系统实时监控 - 自动刷新文件列表 - SSE 实时推送通知 ### 🎨 界面特性 - 响应式设计 - 深色状态指示 - 流畅动画效果 ## 技术栈 - **后端**: Go + Gin - **前端**: 原生 HTML/CSS/JavaScript - **实时通信**: Server-Sent Events (SSE) - **文件监控**: fsnotify - **部署**: Docker ## 快速开始 ### 使用 Docker Compose(推荐) ```bash # 构建并启动 docker-compose up -d # 查看日志 docker-compose logs -f file-manager # 停止服务 docker-compose down ``` ### 使用 Docker ```bash # 构建镜像 docker build -t file-manager . # 运行容器 docker run -d \ --name file-manager \ -p 8080:8080 \ -v /path/to/your/files:/data \ file-manager ``` ### 本地运行 ```bash # 安装依赖 go mod download # 启动服务 go run main.go -port 8080 -root ./files ``` ## 使用说明 ### 访问界面 打开浏览器访问: http://localhost:8080 ### 上传文件 1. 点击 **📤 上传** 按钮选择文件 2. 或直接将文件拖拽到页面任意位置 ### 下载文件/文件夹 1. 勾选要下载的文件/文件夹 2. 点击 **📥 下载** 按钮 3. 多个文件会打包成 ZIP 下载 ### 删除文件 1. 勾选要删除的文件 2. 点击 **🗑️ 删除** 按钮 3. 确认删除操作 ### 移动文件 1. 勾选一个文件 2. 点击 **✂️ 移动** 按钮 3. 选择目标目录 4. 点击 **移动** 确认 ### 重命名 1. 点击文件操作列的 **✏️** 图标 2. 输入新名称 3. 点击 **确认** ### 新建文件夹 1. 点击 **📁 新建文件夹** 按钮 2. 输入文件夹名称 3. 点击 **创建** ## 配置说明 ### 环境变量 | 变量 | 说明 | 默认值 | |------|------|--------| | PORT | HTTP 监听端口 | 8080 | | ROOT | 文件根目录 | /data | ### 命令行参数 ```bash file-manager -port 8080 -root /path/to/files ``` ## API 接口 | 方法 | 路径 | 说明 | |------|------|------| | GET | `/api/files?path=xxx` | 获取文件列表 | | GET | `/api/preview?path=xxx` | 预览文件 | | GET | `/api/download?path=xxx` | 下载文件 | | GET | `/api/download?paths=[xxx,yyy]` | 批量下载 | | POST | `/api/upload?path=xxx` | 上传文件 | | POST | `/api/dir` | 创建目录 | | DELETE | `/api/files` | 删除文件 | | PUT | `/api/move` | 移动文件 | | PUT | `/api/rename` | 重命名文件 | | GET | `/api/watch` | SSE 实时监控 | ## 项目结构 ``` file-manager/ ├── main.go # 主程序 ├── static/ │ ├── index.html # 主页面 │ ├── style.css # 样式 │ └── app.js # 前端逻辑 ├── Dockerfile # Docker 构建 ├── docker-compose.yml └── README.md ``` ## 安全提示 ⚠️ 此文件管理器没有访问控制,请仅在可信环境中使用: - 不要暴露到公网 - 使用防火墙限制访问 - 或在前端添加认证层 ## 许可证 MIT License