Skip to content

hinanmu/QrFileTransfer

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

20 Commits
 
 
 
 
 
 
 
 

Repository files navigation

QrFileTransfer 📁 → 🔢

纯浏览器二维码文件传输工具 - 零服务器、零网络、零依赖!

MIT License HTML 5 No Dependencies

✨ 特性

功能 状态
🔓 零基础设施
📁 单文件/文件夹传输
🔢 自动分片编码
🔄 QR 码轮播
🔐 XOR 密码加密
📷 摄像头扫描解码
🗃️ 目录结构完美还原
⏳ 自动去重+缺失检测
🎮 键盘快捷键
🎨 赛博朋克风格

📝 文件协议详解

1. 包类型定义

类型值 名称 说明
0x01 文件数据分片 核心数据传输包
0x02 文件元数据 目录结构、大小、分片数
0x03 传输结束标记 所有数据传输完成

2. 包结构

📦 文件数据分片包 [0x01]

  偏移   长度      字段名        说明
 ────────────────────────────────────────────────────────
  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      分片数据      核心文件内容

📋 文件元数据包 [0x02]

  偏移   长度      字段名        说明
 ────────────────────────────────────────────────────────
  0      1         包类型        固定 0x02
  1      4         文件总数      大端序 uint32
  [每个文件重复]
    5      2         路径长度      大端序 uint16
    7      可变      相对路径      UTF-8 编码
    -      8         文件大小      大端序 uint64 (32高+32低)
    -      4         总分片数      大端序 uint32

🛑 传输结束包 [0x03]

  偏移   长度      字段名        说明
 ────────────────────────────────────────────────────────
  0      1         包类型        固定 0x03
  1      4         文件总数      大端序 uint32
  5      4         校验值        预留,当前为 0

🚀 使用方法

发送端

  1. 打开 index.html
  2. 点击「📁 选择文件夹」或「📄 选择文件」
  3. (可选) 输入密码加密传输
  4. 点击「编码并发送」
  5. 勾选「🔄 循环」开始自动轮播

接收端

  1. 点击「◈ 接收端」或按 2
  2. 点击「▶ 启动摄像头」
  3. 摄像头对准发送端屏幕
  4. 观察「📋 扫描日志」和「⏳ 缺失分片」
  5. 传输完成后点击「下载」

⌨️ 键盘快捷键

按键 功能 模式
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)

🎨 界面预览

赛博朋克风格

📄 协议参考

如果你想自己实现接收端或发送端,参考上述包结构即可!

📜 License

MIT License

About

纯浏览器二维码文件传输工具 - 零服务器、零网络、零依赖!

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages