记得带上 .zip 后缀,没带的话会自动补上。
图片、视频、已经压过的文件本身压不动多少,选「仅存储」速度最快;文本、日志、代码压缩率很高,选「最大压缩」更划算。
选几个文件,一键打包成 ZIP。
选错压缩级别,要么白等半天,要么白压一场。
| 文件类型 | 典型压缩率 | 建议级别 | 原因 |
|---|---|---|---|
| 文本 / 日志 / 代码 | 70%~90% | 最大压缩 | 重复内容极多,压缩收益高 |
| Office 文档(docx/xlsx) | 10%~30% | 标准 | 本身已是 ZIP 容器,再压收益有限 |
| 图片 / 视频 / 音频 | 0%~5% | 仅存储 | 已是压缩编码,再压基本压不动 |
| 混合素材包 | 5%~25% | 标准 | 兼顾速度与体积 |
这些都是「压完才发现」的经典问题。
| 坑 | 会怎样 | 怎么避免 |
|---|---|---|
| 同名文件 | 后加的覆盖先加的,文件丢失 | 打包前列一下清单,确认没有重名 |
| 文件太大 | 浏览器内存吃紧,可能卡死 | 单包控制在 500MB 以内,超大文件建议分片 |
| 中文文件名乱码 | 对方解压后文件名是问号 | 本工具已启用 UTF-8 文件名,用系统自带解压工具即可正常显示 |
| 打包中途关页面 | 内存中的数据全没 | 打包本身很快,别中途刷新 |
⚠️ 免责声明:请确认你对打包的文件拥有合法权利,不要打包传播侵权或涉密内容。
ZIP 采用 Deflate 算法,仅做无损压缩,不加密、不加密码;需要加密请用专业压缩软件。
单包建议控制在 500MB 以内,过大可能超出浏览器内存限制。
所有处理在你的浏览器本地完成,文件不会上传到任何服务器。
交材料要打包十个文件、给同事发一批截图、把一堆日志归档——这种小事专门装个压缩软件有点重,用在线工具又担心文件上传到别人服务器。
这个工具两边都不占:在你自己的浏览器里把文件打包成 ZIP,然后直接下载,文件从头到尾没离开过你的电脑。
它是怎么打包的?
① 读取文件:用 File API 把每个文件读成二进制数据(ArrayBuffer),放进内存;
② 逐个写入 ZIP:把文件按原始文件名(UTF-8 编码)加入压缩包条目,所以中文名不会乱码;
③ Deflate 压缩:按你选的级别压缩——0 级仅存储(只打包不压缩,最快)、6 级标准(速度与体积平衡)、9 级最大压缩(最慢但最小);
④ 生成 Blob 并下载:压缩结果生成一个本地 Blob,通过浏览器直接下载,不经过任何服务器。
压缩级别怎么选?
· 图片、视频、音频:这些文件本身已经是压缩编码(JPEG、H.264、MP3),再压也压不动几个字节,选「仅存储」打包最快;
· 文本、日志、代码:重复内容极多,压缩率能到 70%~90%,选「最大压缩」最划算;
· docx / xlsx:本质上已经是 ZIP 容器,再压收益有限,用「标准」即可;
· 拿不准就选标准,速度和体积都不会差。
打包完成后会显示原始总大小、压缩后大小、压缩率,一目了然。
整个流程都在你自己的浏览器里跑,文件不会上传到任何服务器。
怎么打包:
① 用 File API 把每个文件读成 ArrayBuffer;
② 逐个 zip.file(文件名, 数据) 加入压缩包,文件名以 UTF-8 写入,中文不乱码;
③ 调用 generateAsync({type:'blob', compression:'DEFLATE', compressionOptions:{level}}) 生成,期间回调 onUpdate 更新进度条;
④ 生成 Blob 后本地直接下载;
⑤ 统计原始总大小、压缩后大小与压缩率并展示。
它不做:不加密、不加密码、不分卷、不支持 RAR / 7z。请确认你对打包文件拥有合法权利。
审核通过后就会展示在留言板上,稍安勿躁~
还没有留言,来抢沙发吧!