| | |
| | | } |
| | | |
| | | const baseUrl = process.env.VUE_APP_BASE_API |
| | | export function downLoadOss(ossId, filename) { |
| | | export function downLoadOss(ossId) { |
| | | var url = baseUrl + '/system/oss/download/' + ossId |
| | | axios({ |
| | | method: 'get', |
| | |
| | | responseType: 'blob', |
| | | headers: { 'Authorization': 'Bearer ' + getToken() } |
| | | }).then(res => { |
| | | resolveBlob(res, mimeMap.oss, filename) |
| | | resolveBlob(res, mimeMap.oss) |
| | | }) |
| | | } |
| | | /** |
| | |
| | | * @param {*} res blob响应内容 |
| | | * @param {String} mimeType MIME类型 |
| | | */ |
| | | export function resolveBlob(res, mimeType, filename) { |
| | | export function resolveBlob(res, mimeType) { |
| | | const aLink = document.createElement('a') |
| | | var blob = new Blob([res.data], { type: mimeType }) |
| | | // 从response的headers中获取filename, 后端response.setHeader("Content-disposition", "attachment; filename=xxxx.docx") 设置的文件名; |
| | | var patt = new RegExp('filename=([^;]+\\.[^\\.;]+);*') |
| | | var contentDisposition = decodeURI(res.headers['content-disposition']) |
| | | var result = patt.exec(contentDisposition) |
| | | var fileName = result[1] |
| | | fileName = fileName.replace(/\"/g, '') |
| | | aLink.href = URL.createObjectURL(blob) |
| | | aLink.setAttribute('download', filename) // 设置下载文件名称 |
| | | aLink.setAttribute('download', decodeURI(fileName)) // 设置下载文件名称 |
| | | document.body.appendChild(aLink) |
| | | aLink.click() |
| | | document.body.removeChild(aLink); |