如何使用JSZip实现压缩文件与图片

发布时间:2021-07-21 18:06:58 作者:chen
来源:亿速云 阅读:638

这篇文章主要讲解了“如何使用JSZip实现压缩文件与图片”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“如何使用JSZip实现压缩文件与图片”吧!

JSZip简介

JSZip是一个用于创建、读取和编辑.zip文件的javascript库,有一个可爱而简单的API。JSZip支持Nodejs和浏览器端的安装使用。具体方法如下:

npm install jszipnpm install file-saver

浏览器端解压zip文件

        后端Nodejs将zip文件以二进制形式存储到数据库中。当前端需要该zip文件时,后端将zip文件以二进制形式传输到前端,前端再解压还原。

使用JSZip压缩文件

import JSZip from 'jszip';import FileSaver from 'file-saver';var zip = new JSZip();
//创建hello.txt文件,文件内容为Hello Worldzip.file("hello.txt", "Hello World\n");
//创建一个nested文件夹,文件里里创建一个hello.txt文件,文件内容为Hello Worldzip.folder("nested").file("hello.txt", "Hello World\n");zip.generateAsync({type:"blob"}).then(function(content) {// 使用file-saver保存下载zip文件
FileSaver.saveAs(content, `压缩包名.zip`);});

通过.remove(name)删除文件或文件夹:

zip.remove("photos"); //通过删除文件夹,也删除其内容。

浏览器端解压Zip文件

import JSZip from 'jszip'let new_zip = new JSZip();new_zip.loadAsync(content).then(function(zip) {new_zip.file("hello.txt").async("string");});

案例:导出一个zip文件,包含图片文件和.json文件 

/**  *  @param dataList ['base64数据','base64数据']  */function exportJSZipFileSaverEvent (dataList: any) {var zip = new JSZip();var img = zip.folder("images");let myNotesName = 'zip名称';for (let i = 0; i < dataList.length; i++) {  //过滤base64格式  let image = dataList[i].replace(/^data:image\/(png|jpg|jpeg);base64,/, "");  let imageNames = `${myNotesName}${getTime()}(${i + 1}).png`;  img?.file(imageNames, image, {base64: true});  // 导出json  let jsonNames = `${myNotesName}${getTime()}(${i + 1}).json`;  zip.file(jsonNames, 'json文本数据');}// 下载zip.generateAsync({type: "blob"}).then(function (content) {    FileSaver.saveAs(content, `${myNotesName}${getTime()}.zip`);});}function getTime () {     let data = new Date();     return data.getFullYear() + "-" + (data.getMonth() + 1) + "-" + data.getDate();}

感谢各位的阅读,以上就是“如何使用JSZip实现压缩文件与图片”的内容了,经过本文的学习后,相信大家对如何使用JSZip实现压缩文件与图片这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是亿速云,小编将为大家推送更多相关知识点的文章,欢迎关注!

推荐阅读:
  1. Egret之JSZip加压
  2. Egret之JSZip基础

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

jszip

上一篇:VM安装的虚拟机怎么在局域网内互相访问

下一篇:Java的ClassLoader机制是什么

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》