常见url文件下载方式

// 方式一
let link = document.createElement("a");
 link.href = url + "?response-content-type=application%2Foctet-stream";
 link.target = "_blank";
 document.body.appendChild(link);
 link.click();
 document.body.removeChild(link);

 // 方式二 使用blob进行二进制数据流处理 进行下载
fetch(url)
 .then(response => response.blob()) .then(blob => {
    const url = window.URL.createObjectURL(blob);
    const link = document.createElement('a');
    link.href = url;
    link.download = '项目指标';
    link.click();
    window.URL.revokeObjectURL(url);
 }) .catch(error => {
    console.error('错误:', error);
 })

方式一的文件名无法通过link.download = 'xxxxx.xlsx'进行修改
OSS返回的Content-Disposition头优先级高于download属性
需在OSS链接添加参数覆盖响应头:
link.href = ${url}?response-content-disposition=attachment%3Bfilename%3D${encodeURIComponent('xxxxx.xlsx')}

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容