From bcd811deebfbe927998ab788cfd9b44aaaf6624a Mon Sep 17 00:00:00 2001 From: HuangXin <13189450868@163.com> Date: Fri, 11 Mar 2022 07:44:56 +0000 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E3=80=90responseType=20=3D?= =?UTF-8?q?=20=E2=80=98blob=E2=80=99=E3=80=91=E5=93=8D=E5=BA=94=E8=BF=94?= =?UTF-8?q?=E5=9B=9E=E5=80=BC=EF=BC=8C=E6=9B=B4=E7=81=B5=E6=B4=BB=E4=BD=BF?= =?UTF-8?q?=E7=94=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ruoyi-ui/src/utils/request.js | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/ruoyi-ui/src/utils/request.js b/ruoyi-ui/src/utils/request.js index 3c3a65a39..b8c818133 100644 --- a/ruoyi-ui/src/utils/request.js +++ b/ruoyi-ui/src/utils/request.js @@ -74,8 +74,10 @@ service.interceptors.response.use(res => { // 获取错误信息 const msg = errorCode[code] || res.data.msg || errorCode['default'] // 二进制数据则直接返回 - if(res.request.responseType === 'blob' || res.request.responseType === 'arraybuffer'){ + if(res.request.responseType === 'arraybuffer'){ return res.data + } else if(res.request.responseType === 'blob' ){ + return res } if (code === 401) { if (!isRelogin.show) { @@ -97,6 +99,7 @@ service.interceptors.response.use(res => { return Promise.reject('无效的会话,或者会话已过期,请重新登录。') } else if (code === 500) { Message({ + dangerouslyUseHTMLString: true, message: msg, type: 'error' }) @@ -138,10 +141,17 @@ export function download(url, params, filename) { transformRequest: [(params) => { return tansParams(params) }], headers: { 'Content-Type': 'application/x-www-form-urlencoded' }, responseType: 'blob' - }).then(async (data) => { + }).then(async (response) => { + let data = response.data const isLogin = await blobValidate(data); if (isLogin) { const blob = new Blob([data]) + // 后台设置的下载文件名称 + let downloadFileName = response['headers']["download-filename"]; + // 如果前端不自定义文件名称,则使用后台设置的名称 + if (!filename && downloadFileName) { + filename = decodeURI(downloadFileName); + } saveAs(blob, filename) } else { const resText = await data.text();