上周聚会拍了一堆照片。朋友问你怎么把原图发给我?你打开微信文件传输助手,点两下,选文件,发送。文件太大?微信提示超过限制。视频被压缩到模糊。
然后网盘上传等了五分钟,下载又等了五分钟。中间文件还经过了别人的服务器。
数据线?2026年了,找根线比找钥匙还难。
这就是我做 FileTransfer 的原因。一个开源的小工具,电脑上双击启动,手机扫个码,就能互相传文件。不需要装 App,不需要注册账号,不需要云服务中转。纯局域网,文件从你的电脑直接到你的手机,不过任何第三方。

使用方便
电脑上双击 FileTransfer.bat,终端会打印出一个二维码。
手机连接同一个 WiFi,用相机或浏览器扫这个码。浏览器里会打开一个网页,这就是 FileTransfer 的界面。左边传文件,右边同步剪贴板,一目了然。
传文件支持拖拽。把电脑上的视频拖进窗口,手机立刻就能下载。反过来,手机上选中照片上传,电脑端马上收到。单个文件最大 5GB,传一部 4K 电影绰绰有余。
剪贴板同步是我自己最常用的功能。在电脑上复制一段文字,手机端几秒内就弹出来。反向也一样。以前要登录两次微信、给自己发消息来做这件事,现在不用了。
不需要装任何东西
为了方便使用。
FileTransfer 的 build-release.js 脚本会把一个精简版 Node.js 和整个项目打包成一个文件夹。你把这个文件夹压缩成 zip 发给朋友,对方解压,双击 FileTransfer.bat,就可以用了。
不需要"你先装个 Node.js",不需要"你先配个环境变量",不需要"你先打开终端运行 npm install"。就双击一个 bat 文件。跟打开一个绿色软件一样。
这个想法来自一个很具体的场景:我想让不懂技术的朋友也能用。他们不会装 Node.js,不会跑命令,只需要知道怎么解压一个 zip 文件。
安全设计主要面向家庭或小型局域网环境,而不是公网部署
如果你对技术细节不感兴趣,这一段可以跳过。不影响你使用这个工具。
启动时生成随机访问 Token API 和 WebSocket 均需要携带 Token CORS 仅允许预设来源访问 WebSocket 消息大小限制为 64KB User-Agent 等客户端信息在展示前进行转义处理 心跳机制自动清理失效连接 上传路径经过规范化校验,防止目录穿越 请求频率和连接数受到限制

为什么要做这个软件
跟微信文件传输助手比:FileTransfer 不走微信服务器,文件不压缩,不限大小,不需要登录微信。你只是想传个文件,为什么要顺带接收 20 条未读消息?
跟 AirDrop 比:AirDrop 是苹果封闭生态里做得最好的体验。但 FileTransfer 跨平台,Windows、macOS、Android、iOS 都能用,只要设备有浏览器。
跟 Snapdrop 和 LocalSend 比:那俩也很好,但需要两端都打开网页或都装 App。FileTransfer 的便携打包让它更适合"你发我一个工具我来用"的场景。
项目已开源
代码在 github.com/tommykid13/FileTransfer,MIT 协议,随便用。
如果你有 Node.js 环境,clone 下来 npm install 然后 npm start 就能跑。如果你想改 UI 或加功能,前端是标准 Vue 项目,改完 npm run build 就行。改完代码想给朋友用,跑一下 node build-release.js,自动打包成便携版。
上传的文件存在 uploads 目录,SQLite 数据库在 data 目录。数据都在本地,不经过任何云服务。用完想清理,删掉这两个文件夹就行。
下次朋友问你怎么传文件,发个 zip 过去。他们解压,双击,扫码,三秒搞定。
夜雨聆风