fetch 下载流文件

前后端分离的项目,前端大部分使用fetch调用接口,遇到下载的时候,服务器接口一般直接返回流文件(链接本身就是一个文件)

const getExport = async (url) => {
    let options = _headerOptions('GET')
    let response = await fetch(config.apiHost+url,options)

    response.blob().then((blob) => {
        const a = window.document.createElement('a');
        const downUrl = window.URL.createObjectURL(blob);// 获取 blob 本地文件连接 (blob 为纯二进制对象,不能够直接保存到磁盘上)
        const filename = response.headers.get('Content-Disposition').split('filename=')[1].split('.');
        a.href = downUrl;
        a.download = `${decodeURI(escape(filename[0]))}.${filename[1]}`;
        a.click();
        window.URL.revokeObjectURL(downUrl);
    });

    return [];
}
此条目发表在js, 前端分类目录。将固定链接加入收藏夹。

发表评论

电子邮件地址不会被公开。 必填项已用*标注

看不清?