vue之全局封装下载zip的方法

	// 下载zip
	downloadFile(method = 'get', url, params, filename, baseURL = baseUrl,) {

		return new Promise((resolve, reject) => {
			axios({
				method,
				url: url,
				baseURL,
				filename:filename,
				[method == 'get' ? 'params' : 'data']: params,
				responseType: 'blob',
				headers: {
					'Content-Type': 'application/json'
				}
			}).then(res => {
				resolve();
				const blob = new Blob([res.data], { type: "application/zip" });
				const date = new Date();
				// console.log(params);
				//         let fileName ='报表数据.zip'
				const ua = navigator.userAgent.toLowerCase();
				if (/(ie|edge)/.test(ua) || "ActiveXObject" in window)
					navigator.msSaveBlob(blob, filename);
					// console.log(1)
				else {
					console.log(2)
					const fileName = filename;
					const elink = document.createElement('a');
					elink.download = fileName;
					elink.href = URL.createObjectURL(blob);
					document.body.appendChild(elink);
					elink.click();
					URL.revokeObjectURL(elink.href); // 释放URL 对象
					document.body.removeChild(elink);
				}

			}, err => {
				reject(err);
			})
		})
	}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值