一个纯前端的文件传输应用,支持文件上传、下载、预览和二维码分享功能。
- ✅ 纯前端解决方案 - 无需后端服务器,可直接部署到 Vercel、Netlify 等平台
- ✅ 文件上传 - 支持单个文件和文件夹上传
- ✅ 文件管理 - 文件列表展示,支持删除操作
- ✅ 文件下载 - 支持下载已上传的文件
- ✅ 图片预览 - 支持图片文件的实时预览
- ✅ 二维码分享 - 生成当前页面二维码,方便手机访问
- ✅ 响应式设计 - 完美支持桌面和移动端
- ✅ TypeScript - 完整的类型安全支持
- 框架: Next.js 14 (App Router)
- 语言: TypeScript
- 样式: Tailwind CSS
- 文件处理: React Dropzone
- 二维码: qrcode.react
- 图标: Lucide React
npm installnpm run dev访问 http://localhost:3000 查看应用。
npm run build
npm start- 将代码推送到 Git 仓库
- 访问 Vercel 并登录
- 导入你的 Git 仓库
- 使用默认配置部署
详细部署说明请查看 DEPLOYMENT.md
- 上传文件: 点击上传区域或拖拽文件到指定区域
- 管理文件: 在文件列表中查看、删除、下载文件
- 预览图片: 点击图片文件进行预览
- 分享链接: 点击分享按钮生成二维码,用手机扫描访问
- 🔄 会话持久性: 文件仅在当前浏览器会话中有效,刷新页面会重置
- 📱 跨设备: 每个设备需要独立上传和管理文件
- 💾 存储限制: 受浏览器内存限制,大文件可能无法处理
- 🌐 网络要求: 二维码分享需要设备在同一网络下可访问
src/
├── app/
│ ├── globals.css # 全局样式
│ ├── layout.tsx # 根布局
│ ├── page.tsx # 主页面
│ └── test/
│ └── page.tsx # 功能测试页面
├── components/
│ ├── FileList.tsx # 文件列表组件
│ ├── FilePreviewModal.tsx # 文件预览模态框
│ ├── FileUpload.tsx # 文件上传组件
│ └── ShareButton.tsx # 分享按钮组件
└── types.ts # TypeScript 类型定义
支持拖拽和点击上传,处理文件和文件夹上传。
展示上传的文件列表,提供删除、下载、预览功能。
模态框组件,支持图片预览和其他文件信息展示。
生成当前页面二维码,支持手机扫码访问。
- 在
src/types.ts中定义相关类型 - 创建或修改组件文件
- 在主页面
src/app/page.tsx中集成 - 更新样式和测试
使用 Tailwind CSS 进行样式定制,所有样式类都在组件中直接定义。
- 纯前端,文件无法持久化存储
- 不支持多设备实时同步
- 大文件处理能力有限
- 添加后端 API 支持文件存储
- 实现 WebRTC 点对点文件传输
- 添加用户认证和权限管理
- 支持云存储集成
MIT License
欢迎提交 Issue 和 Pull Request!