// var axios = require("axios"); // var jszip = require("jszip"); // var FileSaver = require("file-saver"); const zipOss = { getFile: function(url) { return new Promise((resolve, reject) => { axios({ headers:{ 'Cache-control': 'no-cache', }, method: "get", url, responseType: "arraybuffer" }) .then(data => { resolve(data.data); }) .catch(error => { reject(error); }); }); }, downloadFromAliOss: function (fileArr, zipName, btn) { const zip = new JSZip(); const promises = []; fileArr.forEach(item => { let promise = zipOss.getFile(item.url).then(data => { // 获取文件类型 const typeArr = item.url.split("."); const type = typeArr[typeArr.length - 1]; // 默认文件名· const nameArr = item.url.split("/"); const name = item.name ? (item.name + '.' + type) : nameArr[nameArr.length - 1]; const foldPath = item.foldPath || ""; zip.file(foldPath + name, data, { binary: true }); }); promises.push(promise); }); Promise.all(promises).then(() => { zip.generateAsync({ type: "blob" }).then(content => { saveAs(content, zipName || `文件.zip`); toastr.clear(); toastr.success('下载成功'); btn.removeAttr('disabled'); }); }); } }; // module.exports = zipOss;