在客户端将巨大的文件压缩为ZIP,可以使用JavaScript来实现,这里我们将使用JSZip库来处理文件和生成ZIP文件,需要下载并引入JSZip库:
(图片来源网络,侵删)1、下载JSZip库:访问https://github.com/Stuk/jszip/releases,选择一个版本下载,或者直接从CDN引入:
<script src="https://cdnjs.cloudflare.com/ajax/libs/jszip/3.7.1/jszip.min.js"></script>
2、引入FileSaver.js库:访问https://github.com/eligrey/FileSaver.js/,下载并引入到项目中。
<script src="path/to/FileSaver.js"></script>
接下来,我们将编写一个函数来压缩文件并将其保存为ZIP文件:
function zipFiles(fileList, zipName) { // 创建一个新的JSZip实例 const zip = new JSZip(); // 遍历文件列表,将每个文件添加到ZIP文件中 fileList.forEach((file) => { const content = fetch(file).then((response) => response.blob()); zip.file(file, content); }); // 生成ZIP文件并将其保存到本地 zip.generateAsync({ type: "blob" }).then((content) => { saveAs(content, zipName); }); }
现在,我们可以使用zipFiles
函数来压缩文件并将其保存为ZIP文件,假设我们有一个包含多个文件的数组fileList
,我们希望将这些文件压缩为名为myFiles.zip
的ZIP文件:
const fileList = [ "path/to/file1.txt", "path/to/file2.txt", "path/to/file3.txt", ]; zipFiles(fileList, "myFiles.zip");
这个函数会将fileList
中的每个文件添加到一个新的ZIP文件中,并将生成的ZIP文件保存到本地,注意,这个函数需要在支持Fetch API和Blob API的环境中运行,例如现代浏览器,由于跨域限制,可能需要在服务器端实现此功能。
最新评论
本站CDN与莫名CDN同款、亚太CDN、速度还不错,值得推荐。
感谢推荐我们公司产品、有什么活动会第一时间公布!
我在用这类站群服务器、还可以. 用很多年了。