From 612164abde3a9cda59a89e174866807938d4ff7d Mon Sep 17 00:00:00 2001
From: RuoYi <yzz_ivy@163.com>
Date: 星期二, 28 二月 2023 14:42:03 +0800
Subject: [PATCH] 优化文件下载出现的异常(I6DLNU)

---
 src/utils/request.js    |    6 +++---
 src/utils/ruoyi.js      |   12 +++---------
 src/plugins/download.js |   18 +++++++++---------
 3 files changed, 15 insertions(+), 21 deletions(-)

diff --git a/src/plugins/download.js b/src/plugins/download.js
index 41b2934..33d9a8d 100644
--- a/src/plugins/download.js
+++ b/src/plugins/download.js
@@ -15,9 +15,9 @@
       url: url,
       responseType: 'blob',
       headers: { 'Authorization': 'Bearer ' + getToken() }
-    }).then(async (res) => {
-      const isLogin = await blobValidate(res.data);
-      if (isLogin) {
+    }).then((res) => {
+      const isBlob = blobValidate(res.data);
+      if (isBlob) {
         const blob = new Blob([res.data])
         this.saveAs(blob, decodeURIComponent(res.headers['download-filename']))
       } else {
@@ -32,9 +32,9 @@
       url: url,
       responseType: 'blob',
       headers: { 'Authorization': 'Bearer ' + getToken() }
-    }).then(async (res) => {
-      const isLogin = await blobValidate(res.data);
-      if (isLogin) {
+    }).then((res) => {
+      const isBlob = blobValidate(res.data);
+      if (isBlob) {
         const blob = new Blob([res.data])
         this.saveAs(blob, decodeURIComponent(res.headers['download-filename']))
       } else {
@@ -49,9 +49,9 @@
       url: url,
       responseType: 'blob',
       headers: { 'Authorization': 'Bearer ' + getToken() }
-    }).then(async (res) => {
-      const isLogin = await blobValidate(res.data);
-      if (isLogin) {
+    }).then((res) => {
+      const isBlob = blobValidate(res.data);
+      if (isBlob) {
         const blob = new Blob([res.data], { type: 'application/zip' })
         this.saveAs(blob, name)
       } else {
diff --git a/src/utils/request.js b/src/utils/request.js
index 001ec11..adc7491 100644
--- a/src/utils/request.js
+++ b/src/utils/request.js
@@ -72,7 +72,7 @@
     // 鑾峰彇閿欒淇℃伅
     const msg = errorCode[code] || res.data.msg || errorCode['default']
     // 浜岃繘鍒舵暟鎹垯鐩存帴杩斿洖
-    if(res.request.responseType ===  'blob' || res.request.responseType ===  'arraybuffer'){
+    if (res.request.responseType ===  'blob' || res.request.responseType ===  'arraybuffer') {
       return res.data
     }
     if (code === 401) {
@@ -125,8 +125,8 @@
     responseType: 'blob',
     ...config
   }).then(async (data) => {
-    const isLogin = await blobValidate(data);
-    if (isLogin) {
+    const isBlob = blobValidate(data);
+    if (isBlob) {
       const blob = new Blob([data])
       saveAs(blob, filename)
     } else {
diff --git a/src/utils/ruoyi.js b/src/utils/ruoyi.js
index 3ba2868..2714962 100644
--- a/src/utils/ruoyi.js
+++ b/src/utils/ruoyi.js
@@ -241,12 +241,6 @@
 }
 
 // 楠岃瘉鏄惁涓篵lob鏍煎紡
-export async function blobValidate(data) {
-  try {
-    const text = await data.text();
-    JSON.parse(text);
-    return false;
-  } catch (error) {
-    return true;
-  }
-}
\ No newline at end of file
+export function blobValidate(data) {
+  return data.type !== 'application/json'
+}

--
Gitblit v1.9.3