Vue3 文件下载方法

10,940次阅读
没有评论

共计 888 个字符,预计需要花费 3 分钟才能阅读完成。

文件下载方式

1. window.location.href 方式

注意:
文件名称为中文时要使用 encodeURI 转码;
下载文件格式为 图片 或 txt 时文件会直接打开;
下文中 ${url} 表示接口地址

根据文件名下载:

	window.location.href = `${url}/ 文件名.xlsx`;

文件名有中文:

	window.location.href = `${url}/${encodeURI("文件名.xlsx")}`;

根据接口及参数下载(文件名未知):

	window.location.href = `${url}?flag=1&id=${id}`;

当参数较多时:

	import Qs from 'qs'
	let params = {
		id:1,
		name:'张三'
	}
	let paramStr = Qs.stringify(params);
	window.location.href = `${url}?${paramStr}`

2. 后台返回文件流,模拟 a 链接下载

 	this.$axios.get(${url}/${fileName}`, {responseType: "blob",}).then((response) => {//new Blob([res])中不加 data 就会返回下图中 [objece objece] 内容(少取一层)const blob = new Blob([response.data]); 
       const elink = document.createElement('a');
       elink.download = '文件名.xlsx';
       elink.style.display = 'none';
       elink.href = URL.createObjectURL(blob);
       document.body.appendChild(elink);
       elink.click();
       URL.revokeObjectURL(elink.href); // 释放 URL 对象
       document.body.removeChild(elink);
     }).catch((error) => {
       this.$message({message: error});
     });

原文地址: Vue3 文件下载方法

    正文完
     0
    Yojack
    版权声明:本篇文章由 Yojack 于2024-11-07发表,共计888字。
    转载说明:
    1 本网站名称:优杰开发笔记
    2 本站永久网址:https://yojack.cn
    3 本网站的文章部分内容可能来源于网络,仅供大家学习与参考,如有侵权,请联系站长进行删除处理。
    4 本站一切资源不代表本站立场,并不代表本站赞同其观点和对其真实性负责。
    5 本站所有内容均可转载及分享, 但请注明出处
    6 我们始终尊重原创作者的版权,所有文章在发布时,均尽可能注明出处与作者。
    7 站长邮箱:laylwenl@gmail.com
    评论(没有评论)