主要用到 jszip 和 file-saver!
第一步:下载包!
npm install jszip --save
npm install file-saver --save
第二步:在需要使用的页面引入包!
import JSZip from "jszip";
import FileSaver from "file-saver";
第三步:先定义一个方法!
//定义一个base64打包的方法!
packaging(name, baseList, address, num, zipName, loading) {
// packaging方法后面第一个参数name是数组对象的key,baseList是去掉base64编码前的 data:image/png;base64,address是存放图片地址的数组,num是存放图片地址数组的长度,zipName是压缩包的名字,loading是模态框!
let imgName = name; //数组对象的key赋值给imgName!
let image = new Image();
// 解决跨域 Canvas 污染问题
image.setAttribute("crossOrigin", "anonymous");
image.onload = function () {
let canvas = document.createElement("canvas");
canvas.width = image.width;
canvas.height = image.height;
let context = canvas.getContext("2d");
context.drawImage(image, 0, 0, image.width, image.height);
let url = canvas.toDataURL("image/jpeg"); // 得到图片的base64编码数据,默认是jpeg格式!好处,文件小!
let temp = {
[imgName]: url.substring(22) }; //temp等于{对象key:去掉图片的base64编码前22位字符的数据!}key是图片的名字!他的值是图片的地址!
baseList.push(temp); //把得到的key对象赋值到baseList数组里面!