diff --git a/src/utils/stream.js b/src/utils/stream.js index 00f13acc..c8c80f8b 100644 --- a/src/utils/stream.js +++ b/src/utils/stream.js @@ -14,7 +14,7 @@ function zipFiles(zipName, files) { let zipFileOutputStream = streamSaver.createWriteStream(zipName); // 创建下载文件流 const fileIterator = files.values(); - let Url = null; + let Url = []; let readableZipStream = new ZIP({ async pull(ctrl) { const fileInfo = fileIterator.next(); @@ -24,7 +24,7 @@ function zipFiles(zipName, files) { let { name, url, IsEncapsulated = false } = fileInfo.value; if (IsEncapsulated) { url = await downloadFileToUrl(url) - Url = url + Url.push(url) } // url = decodeUtf8(url); // 待定,可能做过特殊处理 return fetch(url).then(res => { @@ -45,8 +45,10 @@ function zipFiles(zipName, files) { store.dispatch('trials/setUnLock', false) readableZipStream = null; zipFileOutputStream = null; - if (Url) { - URL.revokeObjectURL(Url) + if (Url && Url.length > 0) { + Url.forEach(url => { + URL.revokeObjectURL(url) + }) Url = null } resolve(true) @@ -54,8 +56,10 @@ function zipFiles(zipName, files) { console.log(err); readableZipStream = null; zipFileOutputStream = null; - if (Url) { - URL.revokeObjectURL(Url) + if (Url && Url.length > 0) { + Url.forEach(url => { + URL.revokeObjectURL(url) + }) Url = null } resolve(false) @@ -63,8 +67,10 @@ function zipFiles(zipName, files) { } else { readableZipStream = null; zipFileOutputStream = null; - if (Url) { - URL.revokeObjectURL(Url) + if (Url && Url.length > 0) { + Url.forEach(url => { + URL.revokeObjectURL(url) + }) Url = null } resolve(false)