- 通过系统文件对话框多选文件或文件夹进行共享
- 拖拽文件或文件夹到插件窗口即可快速共享
- 支持文件夹层级展示,共享目录结构一目了然
- 文件夹内文件超过 20 个时弹出确认提示,防止误操作
- 实时开关单个文件/文件夹的共享状态
- 一键删除不需要的共享条目
- Web 页面点击「上传文件」或拖拽文件到页面即可回传文件到电脑
- 上传的文件自动加入共享列表,其他访问者同样可见
- 上传去重:内容相同的文件自动跳过并提示「已上传」;同名不同内容可一键「覆盖 / 重命名 / 跳过」
- 上传文件落盘至「下载/z-share-uploads」目录,文件名自动消毒去重
- 删除上传条目时同步清理磁盘拷贝(Web 端与插件主界面均生效),不留孤儿文件
- Web 页面按来源 IP 分组展示:主机共享与各客户端上传互不混杂
- 插件主界面同样按「主机共享 / 客户端上传·IP」分组展示
- 上传者可在 Web 页面删除自己上传的文件(严格按来源 IP 校验,其他 IP 无法删除)
- 上传进度实时展示,单个请求上限 2GB
- 自动检测所有可用网卡及对应 IP 地址
- 支持手动选择绑定的网卡和 IP
- 端口可配置,启动时检测端口占用并给出提示
- 一键自动选择空闲端口
- 一键启动/停止 HTTP 文件服务器
- 随机生成访问令牌,保障访问安全
- 一键复制访问地址,方便分享给局域网内其他设备
- 远程访问者可按来源 IP 向主机申请点对点私密连接,插件端实时收到申请通知并可同意/拒绝
- 同意后双方建立类 QQ 的私密对话:文本消息、一次多文件发送(合并为一条消息)、文件上传/下载/在线预览
- 支持离线消息与文件的投递、实时消息通知(Web 端 SSE + 插件端系统通知)
- 双方均可删除单条消息(服务端留存同步删除、收到的文件同步清理)或删除整个私密连接,删除结果双方可见
- Web 页面识别是否在插件宿主机浏览器访问,头部显示「本机访问 / 远程访问」标识
- 本机访问时 Web 页面通过左侧「文件 / 消息」菜单切换:消息页与插件端一致地管理、查看点对点对话(同意/拒绝申请、聊天、文件收发)
- 本机页面可查看下载/上传日志、管理 IP 白名单(头部图标按钮),在浏览器侧完成部分插件端操作
- 文件树浏览,支持层级展开折叠
- 文件名实时搜索过滤,匹配目录自动保留父级结构
- 文本文件在线预览,带行号显示
- 代码文件语法高亮(支持 JavaScript、Python、Java、Go、Rust 等 30+ 语言)
- Markdown 文件支持渲染视图和源码视图切换
- 图片文件直接展示
- 音频文件 HTML5 播放器在线播放
- 视频文件 HTML5 播放器在线播放
- PDF 文件内嵌预览
- 亮色/暗色主题切换
- 单文件直接下载
- 目录一键打包 ZIP 下载(服务端流式压缩,不占磁盘不占内存)
- 多选文件/目录打包下载、全部打包下载
- 下载日志与上传日志统一记录(含类型、IP、时间)
- 访问令牌鉴权,防止未授权访问
- 本机回环访问(127.0.0.1 / ::1)默认免 Token;局域网 IP 访问仍需 Token
- 文件访问路径强校验,仅可访问共享列表内的文件
- 文件流式传输,不占用额外内存
- 支持 Range 请求,音视频支持拖动进度条
- 引用原文件路径,不复制文件,不占用额外存储空间
- ZTools 插件市场搜索 文件共享,点击安装
npm install
npm run dev # 启动开发服务器
npm run build # 构建生产版本在 ZTools 中输入以下关键词即可唤起:
共享文件 · share · 文件共享 · zshare
也可以直接拖拽文件或文件夹到 ZTools 搜索框实现快速共享。
| 指令 | 类型 | 说明 |
|---|---|---|
| 共享文件 / share / 文件共享 / zshare | text | 打开插件主窗口 |
| 拖拽文件/文件夹 | files | 快速共享文件 |
- 在 ZTools 中输入
共享文件打开插件 - 点击「添加文件」选择文件/文件夹,或直接拖拽到窗口
- 在上方下拉菜单中选择要绑定的网卡 IP,按需调整端口
- 点击「启动服务」开启 HTTP 文件服务器
- 复制访问地址发送给局域网内其他设备
- 其他设备在浏览器中打开该地址即可浏览、预览、下载文件
- 其他设备在页面点击「上传文件」或拖拽文件到页面,即可把文件回传到电脑(按 IP 分组展示)
- 上传者在 Web 页面点击文件旁的删除按钮,即可删除自己上传的文件(仅限同一 IP 操作)
- 点对点私密共享:其他设备在页面点击「私密连接」→ 填写昵称与留言 → 申请连接;插件端收到申请后点「消息」→ 同意/拒绝;同意后双方进入私密对话,可发文本、一次多文件发送、上传/下载/预览
- 本机管理:在插件主机本机浏览器打开页面时,页面左侧出现「文件 / 消息」菜单,消息页与插件端一致地管理点对点对话;头部「下载日志」「IP 白名单」图标按钮可查看日志与管理白名单
HTTP 文件服务器
基于 Node.js http 模块实现的轻量级文件服务器。支持流式文件传输(fs.createReadStream)、HTTP Range 请求、访问令牌鉴权、CORS 跨域支持、自定义端口和绑定 IP。
文件扫描与索引
添加文件夹时,插件会递归扫描所有子文件和子目录,构建完整的层级树结构。扫描过程会跳过隐藏文件(以 . 开头的文件/文件夹)。扫描结果持久化存储在 ZTools 的 dbStorage 中。
Web 预览界面
外部 Web UI 是一个完全自包含的 HTML 文件,内联了所有 CSS 和 JavaScript,无需任何外部依赖。内置了轻量级 Markdown 解析器和代码语法高亮器,即使在无互联网连接的局域网环境中也能正常使用。
├── public/
│ ├── plugin.json # ZTools 插件配置
│ ├── logo.png # 插件图标
│ ├── web/
│ │ └── index.html # 外部 Web 预览界面(含点对点对话与本机管理台)
│ └── preload/
│ ├── package.json
│ └── services.js # Node.js 后端服务(HTTP + P2P 实时通道)
├── src/
│ ├── App.vue # 根组件
│ ├── main.ts # 应用入口
│ ├── main.css # 全局样式
│ ├── env.d.ts # 类型定义
│ ├── share/
│ │ └── types.ts # 共享类型定义
│ └── Share/
│ ├── index.vue # 主管理界面
│ ├── FileTree.vue # 递归文件树
│ ├── ShareItem.vue # 共享条目行
│ ├── NetworkSelector.vue # 网卡选择器
│ ├── ConfirmDialog.vue # 确认弹窗
│ └── P2pCenter.vue # 点对点消息工作台(会话列表 + 对话窗口)
├── test/
│ └── smoke.cjs # 后端冒烟测试
├── .gitignore
├── CHANGELOG.md
├── LICENSE
├── package.json
├── tsconfig.json
├── vite.config.js
└── README.md








