后端接口返回blod格式数据处理

	request({
						method: "post",
						responseType: "blob",
						url: '/views/openView',
						data:{
							view_id:this.row.view_id,
							download:true
						}
					}).then(res=>{
							
						if (res.data.type === 'application/json') { //判断是否json
						         let reader = new FileReader()
						         reader.readAsText(res.data, 'utf-8')
						         reader.onload = (e) => {
						         // JSON.parse(reader.result) 转译后的json数据
						          res.data = JSON.parse(reader.result)
											console.log(res.data);
						          // 逻辑处理...
											return this.$notify({   position: 'bottom-right',
												title:'提示',
												message:res.data.msg,
												type:'warning'
											})
						      }
								 }else {
						       // 文件流,下载文件逻辑...
							 // 下载文件
							 let blob = new Blob([res.data]);
							 let fileName = res.headers['content-disposition'].split('=')[res.headers['content-disposition'].split('=').length-1]	
							 if(fileName.indexOf("UTF-8") != -1){
							 	fileName = decodeURI(fileName.split("'")[2])
							 }
							  	 let elink = document.createElement("a");
							  	 // 设置下载文件名
							  	 elink.download = fileName;
							  	 elink.style.display = "none";
							  	 elink.href = URL.createObjectURL(blob);
							  	 document.body.appendChild(elink);
							  	 elink.click();
							  	 document.body.removeChild(elink);
							  // this.$loading().close()
							 this.$notify({   position: 'bottom-right',
							 	title:'提示',
							 	message:'下载成功!请查看已下载文件',
							 	type:'success'
							 })
						     } 
					
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值