From 3cf1cf5f913ceaa1f924f64816ce07ec4ad164c6 Mon Sep 17 00:00:00 2001 From: wangxiaoshuang <825034831@qq.com> Date: Thu, 6 Aug 2026 15:56:17 +0800 Subject: [PATCH] =?UTF-8?q?=E4=B8=8B=E8=BD=BD=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/utils/stream.js | 22 ++++++++++++++-------- 1 file changed, 14 insertions(+), 8 deletions(-) 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)