纯浏览器二维码文件传输工具 - 零服务器、零网络、零依赖!
| 功能 | 状态 |
|---|---|
| 🔓 零基础设施 | ✅ |
| 📁 单文件/文件夹传输 | ✅ |
| 🔢 自动分片编码 | ✅ |
| 🔄 QR 码轮播 | ✅ |
| 🔐 XOR 密码加密 | ✅ |
| 📷 摄像头扫描解码 | ✅ |
| 🗃️ 目录结构完美还原 | ✅ |
| ⏳ 自动去重+缺失检测 | ✅ |
| 🎮 键盘快捷键 | ✅ |
| 🎨 赛博朋克风格 | ✅ |
| 类型值 | 名称 | 说明 |
|---|---|---|
0x01 |
文件数据分片 | 核心数据传输包 |
0x02 |
文件元数据 | 目录结构、大小、分片数 |
0x03 |
传输结束标记 | 所有数据传输完成 |
偏移 长度 字段名 说明
────────────────────────────────────────────────────────
0 1 包类型 固定 0x01
1 4 文件索引 大端序 uint32,0开始计数
5 4 分片索引 大端序 uint32
9 4 总分片数 大端序 uint32
13 2 路径长度 大端序 uint16
15 可变 相对路径 UTF-8 编码 (如 docs/file.txt)
15+n 4 数据长度 大端序 uint32
19+n 2600 分片数据 核心文件内容
偏移 长度 字段名 说明
────────────────────────────────────────────────────────
0 1 包类型 固定 0x02
1 4 文件总数 大端序 uint32
[每个文件重复]
5 2 路径长度 大端序 uint16
7 可变 相对路径 UTF-8 编码
- 8 文件大小 大端序 uint64 (32高+32低)
- 4 总分片数 大端序 uint32
偏移 长度 字段名 说明
────────────────────────────────────────────────────────
0 1 包类型 固定 0x03
1 4 文件总数 大端序 uint32
5 4 校验值 预留,当前为 0
- 打开
index.html - 点击「📁 选择文件夹」或「📄 选择文件」
- (可选) 输入密码加密传输
- 点击「编码并发送」
- 勾选「🔄 循环」开始自动轮播
- 点击「◈ 接收端」或按
2键 - 点击「▶ 启动摄像头」
- 摄像头对准发送端屏幕
- 观察「📋 扫描日志」和「⏳ 缺失分片」
- 传输完成后点击「下载」
| 按键 | 功能 | 模式 |
|---|---|---|
1 |
切换发送端 | 全局 |
2 |
切换接收端 | 全局 |
← / → |
上一个/下一个 QR | 发送端 |
空格 |
播放/暂停轮播 | 发送端 |
- QR 码规格:Version 40,纠错等级 L,Byte 模式
- 每 QR 码数据量:约 2,400 字节 (Base64)
- 文件分片大小:1,800 字节
- 传输编码:Base64
- 加密算法:简单 XOR 流密码
- 依赖库:
qrcodejs@1.0.0(CDN: cdnjs)jsQR@1.4.0(CDN: jsdelivr)
如果你想自己实现接收端或发送端,参考上述包结构即可!
MIT License
