import request from '@/utils/request'
import { Message, MessageBox } from 'element-ui'
export async function downloadfile(url, name) {
if (!url) return Message({ message: '下载文件链接为空', type: 'error' })
if (!name) return Message({ message: '下载文件名称为空', type: 'error' })
const res = await request({
url: url,
method: 'get',
responseType: 'blob'
})
console.log(res)
let reader = new FileReader(); //使用 new FileReader(),将 blob 转为 json,然后进行处理
reader.readAsText(res)
reader.onload = function (result) {
try {
let resData = JSON.parse(result.target.result); // 解析对象成功,说明是json数据
if (resData.code != 0) {
Message({ message: resData.msg, type: 'error' })
}
} catch (err) { // 解析成对象失败,说明是正常的文件流
var objectURL = window.URL.createObjectURL(new Blob([res], { type: "text/csv;" }))
var a = document.createElement('a');
a.href = objectURL;
a.download = `${name}.csv`;
// a.target = '_blank'
a.click();
a = null
window.URL.revokeObjectURL(objectURL);
}
};
}
blob文件导出,设置了responseType: ‘blob‘之后,如果返回json错误信息,处理方法
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- 方案一 在请求下载的时候,为了解决乱码问题,我们都会给 XHR 的 responseType 指定为 blob 或...
- 在请求下载的时候,为了解决乱码问题,我们都会给 XHR 的 responseType 指定为 blob 或者 ar...
- 请求下载解决乱码问题, 会给XHR 的 responseType 指定为 blob 或者 arraybuffer;...
- 使用Retrofit+RxJava网络框架进行网络请求,对网络请求的结果进行处理需要实现三个方法onComplet...
- 一般的服务端框架返回的数据格式是确定的,在客户端和服务端交互的时候,如果交互成功那么服务端返回的状态码是200,具...