一、安装
- npm install jszip
- npm install file-saver
二、引入
- import axios from 'axios'
- import JSZip from "jszip";
- import FileSaver from "file-saver";
三、核心代码
- videoData:['/video/26519f026fc012521605563015227403.mp4','/video/f7b9cdae14ad51e491b62742f71c43e7.mp4','/video/1f82d79e0a9ef414419275a5f1d6bb94.mp4'],
-
-
-
- download1(){
- var videoData = this.videoData;
- const zip = new JSZip();
- var promises = [];
- videoData.forEach(item => {
- const promise = this.getFile(item).then(data => {
- const arr_name = item.split("/");
- const file_name = arr_name[arr_name.length - 1]; // 获取文件名
- console.log(data)
- zip.file(file_name, data, { binary: true });
- });
- promises.push(promise);
- });
- Promise.all(promises).then(() => {
- console.log("全部下载完成");
- zip.generateAsync({ type: "blob" }).then(content => {
- // 生成二进制流
- console.log("生成压缩包");
- FileSaver.saveAs(content, "时间戳.zip");
- });
- });
- },
- getFile(url){
- return new Promise((resolve, reject) => {
- axios({
- method: "get",
- url:url,
- responseType: "blob"
- })
- .then(data => {
- resolve(data.data);
- })
- .catch(error => {
- reject(error.toString());
- });
- });
- },