- 通过系统文件对话框多选文件或文件夹进行共享
- 拖拽文件或文件夹到插件窗口即可快速共享
- 支持文件夹层级展示,共享目录结构一目了然
- 文件夹内文件超过 20 个时弹出确认提示,防止误操作
- 实时开关单个文件/文件夹的共享状态
- 一键删除不需要的共享条目
- Web 页面点击「上传文件」或拖拽文件到页面即可回传文件到电脑
- 上传的文件自动加入共享列表,其他访问者同样可见
- 上传去重:内容相同的文件自动跳过并提示「已上传」;同名不同内容可一键「覆盖 / 重命名 / 跳过」
- 上传文件落盘至「下载/z-share-uploads」目录,文件名自动消毒去重
- 删除上传条目时同步清理磁盘拷贝(Web 端与插件主界面均生效),不留孤儿文件
- Web 页面按来源 IP 分组展示:主机共享与各客户端上传互不混杂
- 插件主界面同样按「主机共享 / 客户端上传·IP」分组展示
- 上传者可在 Web 页面删除自己上传的文件(严格按来源 IP 校验,其他 IP 无法删除)
- 上传进度实时展示,单个请求上限 2GB
- 自动检测所有可用网卡及对应 IP 地址
- 支持手动选择绑定的网卡和 IP
- 端口可配置,启动时检测端口占用并给出提示
- 一键自动选择空闲端口
- 一键启动/停止 HTTP 文件服务器
- 随机生成访问令牌,保障访问安全
- 一键复制访问地址,方便分享给局域网内其他设备
- 文件树浏览,支持层级展开折叠
- 文件名实时搜索过滤,匹配目录自动保留父级结构
- 文本文件在线预览,带行号显示
- 代码文件语法高亮(支持 JavaScript、Python、Java、Go、Rust 等 30+ 语言)
- Markdown 文件支持渲染视图和源码视图切换
- 图片文件直接展示
- 音频文件 HTML5 播放器在线播放
- 视频文件 HTML5 播放器在线播放
- PDF 文件内嵌预览
- 亮色/暗色主题切换
- 单文件直接下载
- 目录一键打包 ZIP 下载(服务端流式压缩,不占磁盘不占内存)
- 多选文件/目录打包下载、全部打包下载
- 下载日志与上传日志统一记录(含类型、IP、时间)
- 访问令牌鉴权,防止未授权访问
- 文件访问路径强校验,仅可访问共享列表内的文件
- 文件流式传输,不占用额外内存
- 支持 Range 请求,音视频支持拖动进度条
- 引用原文件路径,不复制文件,不占用额外存储空间
- ZTools 插件市场搜索 文件共享,点击安装
npm install
npm run dev # 启动开发服务器
npm run build # 构建生产版本在 ZTools 中输入以下关键词即可唤起:
共享文件 · share · 文件共享 · zshare
也可以直接拖拽文件或文件夹到 ZTools 搜索框实现快速共享。
| 指令 | 类型 | 说明 |
|---|---|---|
| 共享文件 / share / 文件共享 / zshare | text | 打开插件主窗口 |
| 拖拽文件/文件夹 | files | 快速共享文件 |
- 在 ZTools 中输入
共享文件打开插件 - 点击「添加文件」选择文件/文件夹,或直接拖拽到窗口
- 在上方下拉菜单中选择要绑定的网卡 IP,按需调整端口
- 点击「启动服务」开启 HTTP 文件服务器
- 复制访问地址发送给局域网内其他设备
- 其他设备在浏览器中打开该地址即可浏览、预览、下载文件
- 其他设备在页面点击「上传文件」或拖拽文件到页面,即可把文件回传到电脑(按 IP 分组展示)
- 上传者在 Web 页面点击文件旁的删除按钮,即可删除自己上传的文件(仅限同一 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 后端服务
├── src/
│ ├── App.vue # 根组件
│ ├── main.ts # 应用入口
│ ├── main.css # 全局样式
│ ├── env.d.ts # 类型定义
│ ├── share/
│ │ └── types.ts # 共享类型定义
│ └── Share/
│ ├── index.vue # 主管理界面
│ ├── FileTree.vue # 递归文件树
│ ├── ShareItem.vue # 共享条目行
│ ├── NetworkSelector.vue # 网卡选择器
│ └── ConfirmDialog.vue # 确认弹窗
├── docs/
│ └── 分享链接方案.md # 限时/一次性/密码分享链接设计方案
├── test/
│ └── smoke.cjs # 后端冒烟测试
├── .gitignore
├── CHANGELOG.md
├── LICENSE
├── package.json
├── tsconfig.json
├── vite.config.js
└── README.md
