js导出文件流
/*
* @params {string} url 请求地址
* @params {object} resOpts 请求配置参数
* @params {object} headers 请求头
*/
// 文件导出
export const exportFileRequest = (url, resOpts) => {
const token = '' // 这里面是token
const headers = { Authorization: "Bearer " token };
return axios({
method: "get",
url: `${baseURL}${url}`,
params: resOpts,
responseType: "blob",
headers: headers
});
};
/*
* @params res exportFileRequest返回的数据
*/
export function downloadFile(res) {
fileToJson(res.data).then(resove => {
if (resove && resove.code) {
aleart(resove.msg)
} else {
aleart('文件下载中,请稍等')
const filename = res.headers["filename"];
const name = decodeURIComponent(filename);
// 文件导出
if (!res.data) {
return;
}
let url = window.URL.createObjectURL(new Blob([res.data]));
let link = document.createElement("a");
link.style.display = "none";
link.href = url;
link.setAttribute("download", `${name}`);
document.body.appendChild(link);
link.click();
}
});
}
function fileToJson(file) {
return new Promise((resolve, reject) => {
const reader = new FileReader();
reader.onload = res => {
const { result } = res.target; // 得到字符串
let index = result.indexOf("code");
if (index != -1) {
const data = JSON.parse(result); // 解析成json对象
resolve(data);
} else {
resolve(result);
}
}; // 成功回调
reader.onerror = err => {
reject(err);
}; // 失败回调
reader.readAsText(new Blob([file]), "utf-8"); // 按照utf-8编码解析
});
}
这篇好文章是转载于:学新通技术网
- 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
- 本站站名: 学新通技术网
- 本文地址: /boutique/detail/tanhggheke
系列文章
更多
同类精品
更多
-
photoshop保存的图片太大微信发不了怎么办
PHP中文网 06-15 -
《学习通》视频自动暂停处理方法
HelloWorld317 07-05 -
Android 11 保存文件到外部存储,并分享文件
Luke 10-12 -
word里面弄一个表格后上面的标题会跑到下面怎么办
PHP中文网 06-20 -
photoshop扩展功能面板显示灰色怎么办
PHP中文网 06-14 -
微信公众号没有声音提示怎么办
PHP中文网 03-31 -
excel下划线不显示怎么办
PHP中文网 06-23 -
excel打印预览压线压字怎么办
PHP中文网 06-22 -
TikTok加速器哪个好免费的TK加速器推荐
TK小达人 10-01 -
怎样阻止微信小程序自动打开
PHP中文网 06-13