|
@@ -204,5 +204,45 @@ export default {
|
|
|
})
|
|
|
|
|
|
},
|
|
|
+ // 预览
|
|
|
+ async preview(url, params) {
|
|
|
+ // 响应类型:arraybuffer, blob
|
|
|
+ return new Promise((resolve, reject) => {
|
|
|
+ axiosservice
|
|
|
+ .get(url, {
|
|
|
+ params,
|
|
|
+ responseType: 'blob',
|
|
|
+ })
|
|
|
+ .then((resp) => {
|
|
|
+ let headers = resp.headers
|
|
|
+ let contentType = headers['content-type']
|
|
|
+ if (!resp.data?.size) {
|
|
|
+ console.error('响应异常:', resp)
|
|
|
+ resolve({ msg: '文件不存在,下载失败!' })
|
|
|
+ return false
|
|
|
+ } else {
|
|
|
+ //console.log("下载文件:", resp)
|
|
|
+ const blob = new Blob([resp.data], {
|
|
|
+ type: contentType,
|
|
|
+ })
|
|
|
+ // const contentDisposition = resp.headers['content-disposition']
|
|
|
+ // let fileName = 'unknown'
|
|
|
+ // if (contentDisposition) {
|
|
|
+ // fileName = window.decodeURI(resp.headers['content-disposition'].split('=')[1])
|
|
|
+ // }
|
|
|
+
|
|
|
+ var reader = new FileReader()
|
|
|
+ reader.onload = function() {
|
|
|
+ resolve(this.result)
|
|
|
+ }
|
|
|
+ reader.readAsArrayBuffer(blob)
|
|
|
+
|
|
|
+
|
|
|
+ }
|
|
|
+ })
|
|
|
+ .catch(function (error) { })
|
|
|
+ })
|
|
|
+
|
|
|
+ },
|
|
|
axios: axiosservice,
|
|
|
}
|