Initial commit: File manager with upload, search, and modal dialogs

This commit is contained in:
Admin
2026-01-22 16:49:21 +08:00
commit 267ae69030
8 changed files with 2884 additions and 0 deletions

186
README.md Normal file
View File

@@ -0,0 +1,186 @@
# 📁 文件管理器
一个类似 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