import fileDownload from 'js-file-download'
|
import message from './message'
|
|
export default function (response, decode = true, mime = 'application/octet-stream') {
|
// 当下载接口没有成功返回流并且接口返回的是JSON时需要对响应流进行解析并提示错误。(处理下载接口出现未知异常的情况)
|
if (response.headers['content-type'] === 'application/json') {
|
const blob = new Blob([response.data])
|
const fileReader = new FileReader()
|
fileReader.readAsText(blob, 'utf-8')
|
fileReader.onload = function () {
|
message.apiFailed(JSON.parse(fileReader.result))
|
}
|
return
|
}
|
if (response.headers['content-length'] === '0') {
|
message.error('无法下载文件,可能因为数据处理错误导致文件大小为0B')
|
return
|
}
|
// 下载接口在响应头doumee-download-filename中存放文件名称,接口的返回的文件名称需采用url encode的方式进行编码
|
fileDownload(response.data, decode ? decodeURI(response.headers['doumee-download-filename']) : response.headers['doumee-download-filename'], mime)
|
}
|