vue 实现打包并下载主要是安装两个插件 JSZip 和 file-saver
npm install file-saver JSZip
import JSZip from "jszip";
import { saveAs } from "file-saver";
function downDoc(data: any) {
let zip = new JSZip();//初始化 JSZip
for (let i = 0; i < data.length; i++) {
let obj = data[i];
zip.file(obj.name + ".doc", getBlob(obj.src));
}
zip.generateAsync({ type: "blob" }).then(function(content: Blob) {
//使用blob下载zip
saveAs(content, "Sound.zip");
});
}
function getBlob(url: string): Promise<Blob> {
return new Promise(resolve => {
const xhr = new XMLHttpRequest();
xhr.open("GET", url, true);
xhr.responseType = "blob";
xhr.onload = () => {
if (xhr.status === 200) {
resolve(xhr.response);
}
};
xhr.send();
});
}