- 🎯 扫码传输 - 微信扫一扫即可上传文件
- 🔄 自动刷新 - 上传完成后二维码自动更新
- ⏱️ 安全时效 - 二维码5分钟有效期,自动过期保护
- 🌐 局域网访问 - 同一网络下即可使用
- 📊 实时状态 - WebSocket 实时显示上传状态
- 🖥️ 全屏模式 - 支持全屏展示二维码
- 📁 快速打开 - 一键打开文件保存文件夹
- 💾 桌面应用 - 支持 macOS 和 Windows 平台
- 前往 Releases 页面
- 下载对应平台的安装包:
- macOS:
扫享 ScanShare-1.0.0.dmg - Windows:
扫享 ScanShare Setup 1.0.0.exe
- macOS:
- 安装并运行应用
- 使用微信扫描二维码上传文件
- Node.js >= 18.0.0
- npm >= 9.0.0
# 1. 克隆仓库
git clone https://github.com/zrt-ai-lab/scanshare.git
cd scanshare
# 2. 安装依赖
npm install
# 3. 启动应用
npm run electron- 启动应用 - 双击打开"扫享 ScanShare"
- 扫描二维码 - 使用微信"扫一扫"功能
- 选择文件 - 在浏览器中选择要上传的文件
- 完成上传 - 文件自动保存到指定文件夹
- macOS:
~/Library/Application Support/扫享 ScanShare/uploads/ - Windows:
C:\Users\你的用户名\AppData\Roaming\扫享 ScanShare\uploads\
可通过"📁 打开文件夹"按钮快速访问。
点击"🖥️ 全屏显示"按钮进入全屏模式,适合投影展示。
- 按
ESC键退出全屏 - 或点击左上角"✕ 退出全屏"按钮
编辑 config.json 文件可自定义配置:
{
"uploadPath": "./uploads", // 文件保存路径
"port": 3000, // 服务端口
"tokenExpireMinutes": 5, // 二维码有效期(分钟)
"maxFileSize": 100, // 最大文件大小(MB)
"allowedFileTypes": ["*"] // 允许的文件类型(*表示全部)
}可通过以下方式修改端口:
# 方式1:修改 config.json
"port": 8080
# 方式2:环境变量
PORT=8080 npm run electron
# 方式3:命令行参数
npm run electron -- 8080scanshare/
├── public/ # 前端静态文件
│ ├── index.html # 主页面
│ ├── upload.html # 上传页面
│ └── zlab.png # Logo
├── server.js # Express 服务器
├── electron-main.js # Electron 主进程
├── config.json # 配置文件
├── package.json # 项目配置
└── README.md # 项目说明
- 前端: HTML5, CSS3, JavaScript (ES6+)
- 后端: Node.js, Express, Socket.IO
- 桌面: Electron
- 其他: QRCode.js, Multer
# 安装依赖
npm install
# 启动 Web 服务(仅后端)
npm start
# 启动 Electron 应用
npm run electron
# 代码检查
npm run lint# 打包为 DMG 安装包
npm run build:mac
# 或者只打包 DMG
npm run build:mac-dmg
# 输出位置
dist/扫享 ScanShare-1.0.0.dmg
dist/扫享 ScanShare-1.0.0-mac.zip系统要求:
- macOS 10.13 或更高版本
- 64位处理器
# 打包为 NSIS 安装程序(推荐)
npm run build:win
# 或者只打包 EXE
npm run build:exe
# 或者只打包 MSI
npm run build:msi
# 输出位置
dist/扫享 ScanShare Setup 1.0.0.exe系统要求:
- Windows 10 或更高版本
- 64位系统
在 macOS 上可以同时打包两个平台:
# 同时打包 Mac 和 Windows 版本
npm run build:mac && npm run build:win修改 package.json 中的 build 字段可自定义打包选项:
{
"build": {
"appId": "com.zlab.scanshare",
"productName": "扫享 ScanShare",
"mac": {
"target": ["dmg", "zip"],
"category": "public.app-category.utilities"
},
"win": {
"target": ["nsis"]
}
}
}如果遇到"无法打开,因为它来自身份不明的开发者":
# 解决方法1:右键点击应用 -> 打开
# 解决方法2:系统设置
系统偏好设置 -> 安全性与隐私 -> 点击"仍要打开"
# 解决方法3:终端命令
sudo xattr -r -d com.apple.quarantine "/Applications/扫享 ScanShare.app"这是因为应用未签名,可以安全安装:
- 点击"更多信息"
- 选择"仍要运行"
原因:手机和电脑不在同一局域网
解决方案:
- 确保连接同一 Wi-Fi
- 检查防火墙设置
- 使用内网穿透服务(如 Cloudflare Tunnel)
点击"📁 打开文件夹"按钮,或手动访问:
- macOS:
~/Library/Application Support/扫享 ScanShare/uploads/ - Windows:
%APPDATA%\扫享 ScanShare\uploads\
修改 config.json 中的 port 为其他值(如 8080)
- ✅ 二维码采用随机令牌,每次生成都不同
- ✅ 令牌有效期为5分钟,过期自动失效
- ✅ 仅在局域网内访问,不暴露到公网
- ✅ 每个令牌只能使用一次
⚠️ 建议在可信网络环境下使用
- 🎉 初始版本发布
- ✨ 支持扫码上传文件
- ✨ 自动刷新二维码
- ✨ 全屏展示模式
- ✨ 实时状态显示
- 📦 支持 macOS 和 Windows 打包
欢迎提交 Issue 和 Pull Request!
- Fork 本仓库
- 创建特性分支 (
git checkout -b feature/AmazingFeature) - 提交更改 (
git commit -m 'Add some AmazingFeature') - 推送到分支 (
git push origin feature/AmazingFeature) - 开启 Pull Request
- 使用 2 空格缩进
- 遵循 ESLint 规则
- 提交信息使用语义化格式
本项目采用 MIT 许可证 - 详见 LICENSE 文件
ZLab - GitHub
如果这个项目对你有帮助,请给个 ⭐️ Star 支持一下!
Made with ❤️ by ZLab