12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455 |
- // 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;
|