# fileShare **Repository Path**: xiaoliang_mian/file-share ## Basic Information - **Project Name**: fileShare - **Description**: 一个基于 Nuxt 4 构建的局域网文件共享 Web 应用,支持文件上传、下载、文本分享等功能。 - **Primary Language**: TypeScript - **License**: MIT - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2026-03-23 - **Last Updated**: 2026-07-25 ## Categories & Tags **Categories**: Uncategorized **Tags**: Nuxt, TypeScript, Vue, Nodejs ## README # 局域网文件共享 一个基于 Nuxt 4 构建的局域网文件共享 Web 应用,支持文件上传、下载、文本分享等功能。 ## 功能特性 - 📤 **文件上传** - 支持单文件和多文件上传,支持大文件分片上传 - 📥 **文件下载** - 一键下载共享文件 - 📝 **文本分享** - 支持直接上传和分享文本内容 - 🔍 **文件搜索** - 支持按文件名搜索文件 - 🗑️ **文件管理** - 支持删除单个文件或清空所有文件 - 📱 **响应式设计** - 支持桌面端和移动端访问 ## 技术栈 - **前端框架**: [Nuxt 4](https://nuxt.com) - **UI 组件库**: [@nuxt/ui](https://ui.nuxt.com) - **样式**: [Tailwind CSS](https://tailwindcss.com) - **图标**: [Iconify](https://icon-sets.iconify.design) - **语言**: TypeScript ## 项目结构 ``` fileShare/ ├── app/ # 前端应用 │ ├── assets/ # 静态资源 │ │ └── css/ # 样式文件 │ ├── components/ # Vue 组件 │ ├── pages/ # 页面组件 │ │ └── index.vue # 主页面 │ └── utils/ # 工具函数 │ ├── handleFile.ts # 文件处理 │ └── tools.ts # 通用工具 ├── server/ # 服务端 API │ ├── api/ # API 路由 │ │ ├── clearFiles.delete.ts # 清空文件 │ │ ├── deleteFile.delete.ts # 删除文件 │ │ ├── download.get.ts # 下载文件 │ │ ├── fileList.get.ts # 文件列表 │ │ ├── uploadFile.post.ts # 上传文件 │ │ ├── uploadText.post.ts # 上传文本 │ │ └── upload/ # 分片上传 │ │ ├── init.post.ts # 初始化分片 │ │ └── [uploadId]/ # 分片处理 │ │ ├── chunks.post.ts # 上传分片 │ │ └── merge.post.ts # 合并分片 │ ├── types/ # 类型定义 │ └── utils/ # 服务端工具 ├── public/ # 公共资源 ├── nuxt.config.ts # Nuxt 配置 └── package.json # 项目依赖 ``` ## 快速开始 ### 安装依赖 ```bash pnpm install ``` ### 开发模式 ```bash pnpm dev ``` 启动后访问 `http://localhost:3000` ### 生产构建 ```bash pnpm build pnpm preview ``` ## 配置说明 ### 存储配置 在 [`nuxt.config.ts`](nuxt.config.ts) 中配置存储路径: ```typescript nitro: { storage: { // 本地文件存储 'uploads': { driver: 'fs', base: './files' }, // 分片上传 'uploads-slice': { driver: 'fs', base: './files-slice', chunkSize: 1024 * 1024 * 50 // 50M } } } ``` - `files` - 上传文件的存储目录 - `files-slice` - 分片文件的临时存储目录 - `chunkSize` - 分片大小,默认 50MB ## API 接口 | 方法 | 路径 | 描述 | |------|------|------| | GET | `/api/fileList` | 获取文件列表 | | POST | `/api/uploadFile` | 上传文件 | | POST | `/api/uploadText` | 上传文本 | | GET | `/api/download` | 下载文件 | | DELETE | `/api/deleteFile` | 删除文件 | | DELETE | `/api/clearFiles` | 清空所有文件 | | POST | `/api/upload/init` | 初始化分片上传 | | POST | `/api/upload/[uploadId]/chunks` | 上传分片 | | POST | `/api/upload/[uploadId]/merge` | 合并分片 | ## 使用说明 1. **上传文件**: 点击"上传文件"按钮,选择要上传的文件,支持多文件上传 2. **上传文本**: 点击"上传文本"按钮,在弹出的对话框中输入文本内容 3. **下载文件**: 点击文件行中的"下载"按钮 4. **复制文本**: 对于文本文件,点击"复制"按钮直接复制内容 5. **删除文件**: 点击"删除"按钮移除指定文件 6. **清空文件**: 点击"清空文件"按钮删除所有上传的文件 7. **搜索文件**: 在搜索框中输入文件名进行搜索 ## 注意事项 - 文件存储在服务器的 `files` 目录中 - 分片上传的大文件会临时存储在 `files-slice` 目录,合并后自动清理 - 本应用适用于局域网内文件共享,请根据实际需求配置访问权限 ## 许可证 [MIT](LICENSE)