Browse Source

default blob download file suffix

hare8999@163.com 1 năm trước cách đây
mục cha
commit
9d3435bebd
2 tập tin đã thay đổi với 5 bổ sung4 xóa
  1. 3 3
      src/utils/blob.js
  2. 2 1
      src/utils/request.js

+ 3 - 3
src/utils/blob.js

@@ -1,12 +1,12 @@
-export function downloadBlobFile(response, filename) {
+export function downloadBlobFile(response, filename, suffixDef = '.doc') {
   // download blob file
   const url = window.URL.createObjectURL(new Blob([response.data]))
 
   // get file suffix from response header
   // build file name from data.name data.score data.batchName and suffix
   let disposition = response.headers['content-disposition']
-  disposition = disposition.replace('"', '').replace("'", '')
-  const suffix = disposition.substring(disposition.lastIndexOf('.'), disposition.length - 1)
+  disposition = disposition?.replace('"', '').replace("'", '')
+  const suffix = disposition?.substring(disposition.lastIndexOf('.'), disposition.length - 1) || suffixDef
   const fileName = `${filename}${suffix}`
 
   // Create a download link and trigger a click event to download the file

+ 2 - 1
src/utils/request.js

@@ -91,7 +91,8 @@ service.interceptors.response.use(res => {
       })
       return Promise.reject('error')
     } else {
-      return res.data
+      // blob类型的文件流因为后续还要处理文件其它信息,所以不做处理
+      return (res.data instanceof Blob) ? res : res.data
     }
   },
   error => {