为什么敢说「不上传」
一句话:本站没有能接收你文件的代码路径。你选中的文件从头到尾只在你这台设备的内存里——不是"发出去了但承诺不看",而是根本没有发出去这一步。
文件到底走了哪一段路
三步,全部发生在你的浏览器里:
- 读进来:你点「选择文件」,浏览器把文件读成内存里的一段字节。 这一步不走网络——就像用本地播放器打开硬盘上的一个视频。
- 处理:PDF 的解析与重组、图片的解码与重编码,都在
Web Worker里做。Worker 是浏览器在你电脑上开的一个后台线程,不是远程服务器; 图像编解码用OffscreenCanvas,同样在本机。 - 存出去:结果通过 Blob 下载,由浏览器写成你磁盘上的新文件。 你的原文件始终没有被修改。
你自己就能验证(大约 3 分钟)
这是这一页我最想让你做的一件事:别信我们说的,自己看一次。
- 按
F12(macOS:⌘⌥I)打开开发者工具,切到「网络 / Network」面板。 - 勾选「保留日志 / Preserve log」,这样页面跳转后请求列表不会被清掉。
- 随便打开一个工具,选一个文件,跑完,下载。
- 看请求列表。
你应该看到的:本站的 HTML / JS / CSS;一条hm.baidu.com(百度统计,只报事件名和数字);如果你压缩中文 PDF 并选了极限档,可能多一条本站的/cmaps/xxx.bcmap(字体映射表,同域)。
你不应该看到的:任何请求体大小与你的文件在一个量级的上传请求。 你上传一个 10MB 的 PDF,如果有上传,那条请求也在 10MB 量级——这个数字骗不了人。 - 更狠的一步:把 Network 面板的节流切到 Offline(离线),刷新页面 (首次访问过之后页面会被缓存),再跑一次工具——照样能跑完。 这直接证明处理过程不依赖网络。
上面第 4 步那个"看大小"的判据,是这一页唯一需要你信任的东西之外的东西:你不需要看懂每个请求是什么,只需要看它的体积。
诚实的边界:哪些情况确实会联网
- 百度统计:会向
hm.baidu.com发一条请求。内容是事件名 (例如image_compress_done)与聚合数字(张数、总字节、耗时毫秒),不含文件名、不含文件内容。这是我们唯一的第三方请求。 - 字体映射表(cmap):极限档压缩中文 PDF 时需要一张字体映射表。 早期版本它取自公共 CDN——我们已改成随站自托管,现在也是同域请求, 不再是第三方域名。这里写下来,是因为"曾经有过"这件事本身你也应该知道。
但有一句要说准确:改成同域不等于断网时一定能取到——同域请求在断网时一样会失败。 我们的做法是首次取到后把它缓存下来,所以断网能不能用,取决于你之前是否用过一次。 不把这句话含糊成"断网也能取到",是我们这页的规矩。 - 静态资源:页面的 HTML / JS / CSS 来自本站域名,和任何网站一样。
- 我们不做的:没有账号、没有注册;不设跨站追踪 Cookie;不读你设备上的其它文件 (浏览器也不允许)。
- 如果将来要加错误上报:我们会先写在这一页上,再上线。 这一页是本产品承诺的唯一事实来源,改动留痕。
还有一件事:我们不会偷偷降级
有些能力你的浏览器暂时不支持(比如某个图片编码格式)。我们的做法是把选项置灰并说明原因,而不是悄悄给你换一种输出、也不隐藏这个选项让你以为没这功能。 理由和"不上传"是同一条:让你自己能判断发生了什么。
常见问题
- 断网真的能用吗?能,前提是页面已经被缓存过(第一次打开需要联网加载页面本身)。 处理逻辑不依赖网络,这也是我们敢让你切 Offline 验证的原因。
- 文件会留在你们的服务器上吗?不存在"我们的服务器"这一环——没有服务端接收代码,也就没有残留的可能。
- 手机上(小程序)也一样吗?一样。小程序端的处理同样在手机本地完成,文件不经过任何服务器。