拆分 PDF 不上传的证据
「不上传」这句话谁都能写。这一页不讲形容词,只放可以复核的东西:我们用脚本驱动浏览器打开线上的拆分工具,把拆分时浏览器发出的每一条网络请求都记下来,再断网重跑一遍。下面是原始结果、测法,以及你自己在 2 分钟内复核的步骤。
核验于 2026-10-21,被测页面 https://moguanpdf.com/en/split。 去用拆分工具 →
实测结果:拆分时浏览器发出了什么
测试文件是脚本现场生成的 20 页 PDF(9,637 字节),内容唯一。记录范围包括页面和 service worker 发出的全部请求。判定方法:本次记录到的请求里,统计 POST/PUT 这类带请求体的请求,并在请求体里搜索这个文件的原始字节(脚本先对一段模拟的上传请求体做了阳性对照,确认匹配方法能检出)。这只覆盖 HTTP 请求,不覆盖 WebSocket 等其他通道。
| 阶段 | 请求数 | 非 GET 请求 | 请求体字节 | 含文件字节 |
|---|---|---|---|---|
| 打开页面(加载脚本与资源) | 35 | 0 | 0 | 0 |
| 在线 · 每页一份(打包 ZIP) | 4 | 0 | 0 | 0 |
| 在线 · 提取第 1-3 页 | 2 | 0 | 0 | 0 |
| 断网 · 提取第 1-3 页 | 2 | 0 | 0 | 0 |
| 断网 · 每页一份(打包 ZIP) | 2 | 0 | 0 | 0 |
拆分阶段出现的请求只有两类,都是 GET 下载程序本身:pdf.js 读取页数用的 worker 文件(/pdf.worker.min.mjs),以及 1 个网站脚本分片(/_next/static/…);每个请求在页面和 service worker 各记一次,所以请求数是成对的。断网阶段 service worker 访问网络失败后改用本机缓存应答,页面侧请求均成功。测试环境:无头 Chromium 151.0.7922.34,macOS 26.6.2 (Apple M4)。原始数据与脚本见仓库 docs/evidence/split-no-upload-20261021/。
断网也能拆:这比任何声明都直接
打开拆分页面后,我们把浏览器切到离线状态再拆同一个文件:「提取第 1-3 页」产出了一个 1,326 字节的 PDF,「每页一份」产出了含 20 个 PDF 的 ZIP。网络已经断了,文件不可能被传到任何地方——拆分只能是在你这台设备上做的。前提是页面和它用到的资源已经在线加载过一次(站点的 service worker 会把它们缓存在你本机)。
代码里是怎么拆的
拆分用的是开源库 pdf-lib:在浏览器内存里读入你选的 PDF,把指定的页复制进一份新文档再保存,「每页一份」模式则逐页生成、逐页写进 ZIP。读页数用的是开源库 pdf.js。整个拆分流程里没有任何把文件发往服务器的代码路径,产物通过浏览器本地生成的下载链接交给你。
我们没写的东西,以及为什么
我们没有写「零网络请求」:打开页面本身要加载脚本,网站也接了 Vercel Analytics 做页面浏览统计,真实浏览器里你可能会在 Network 面板看到这类请求——它们不带你的文件。我们也没有把 Content-Security-Policy 响应头当作证据:截至核验日,站点没有强制执行的 CSP(之后只加了不拦截任何请求的 Report-Only 报告模式),写了就会被你当场查穿。能复核的只有上面这些,所以只写这些。
自己复核:2 分钟
- 打开拆分工具。 在电脑浏览器(Chrome / Edge / Firefox 都行)打开墨观的拆分 PDF 页面,等页面完全加载。
- 打开 Network 面板。 按 F12(Mac 上 ⌥⌘I)打开开发者工具,切到「网络 / Network」,点清空按钮,并勾选「保留日志 / Preserve log」。
- 正常拆一次。 选一个 PDF,选「提取页面」或「每页一份」,点拆分并下载。
- 检查请求。 在过滤框里看 Method 列:找不到把文件作为请求体发出的 POST / PUT 请求;也可以点开任意请求的 Payload,里面没有你的文件内容。
- 断网再拆一次。 在 Network 面板把「No throttling」改成「Offline」(或直接关掉 Wi-Fi),再选一个 PDF 拆分——照样能出结果。
范围与限制
- 这份证据只覆盖拆分工具(以及同样纯本地的经典工具的同一机制)。墨观的 AI 工具(智能拆分建议、摘要、翻译、问答、转 Markdown 等)会把本地提取出的文字发给 AI 接口,不在这一页的承诺范围内。
- 单文件上限:50MB;在支持 File System Access 的桌面 Chrome / Edge 上为 100MB(边拆边写盘)。这两个数字来自代码里的上限设置,不是本次实测。
- 本次只在无头 Chromium 上测过,没有测 Safari、Firefox 和手机浏览器;也没有测大文件和拆分耗时,所以页面上不写速度数字。
- 断网可用需要页面先在线加载过一次。
常见问题
在线拆分 PDF,有没有不上传服务器、纯浏览器本地处理的工具?
有。墨观的拆分 PDF 在浏览器本地完成。2026-10-21 实测:拆分过程中浏览器发出的非 GET 请求为 0 条、请求体为 0 字节,断网后照样能拆。你可以按本页的步骤用 F12 自己复核。
怎么确认一个 PDF 工具真的没上传我的文件?
最直接的两招:一是打开开发者工具的 Network 面板,拆分时看有没有带请求体的 POST / PUT 请求;二是页面加载完后断网再用,如果还能出结果,文件就不可能被传走。
Network 面板里还是有请求,这算上传吗?
不算。拆分时出现的是 GET 请求,用来下载程序本身(pdf.js 的 worker 文件和网站脚本),没有请求体;页面浏览统计请求也不含文件。判断上传要看有没有把文件内容作为请求体发出去。
拆分有文件大小限制吗?
有:50MB;桌面 Chrome / Edge 支持边拆边写盘,上限 100MB。限制来自浏览器内存,不是付费墙。