当前位置: 首页 > news >正文

四维码制作网站网站群建设的目的意义

四维码制作网站,网站群建设的目的意义,怎样建立公众号,音乐网站建设视频教程Vue项目开发中,遇到界面下载功能时,前端如何实现将后端返回二进制文件在浏览器自动下载? 一、关键代码: export function downloadFile(fileName) {axios({method: post,url: process.env.VUE_APP_BASE_API /cgi-bin/file,data:…

在这里插入图片描述

Vue项目开发中,遇到界面下载功能时,前端如何实现将后端返回二进制文件在浏览器自动下载

一、关键代码:

export function downloadFile(fileName) {axios({method: 'post',url: process.env.VUE_APP_BASE_API + '/cgi-bin/file',data: {'X-Token': getToken(),method: 'download',data: {filename: fileName}},responseType: 'blob'}).then((res) => {const blob = new Blob([res.data], { type: 'application/octet-stream;charset=utf-8' }); // 将二进制流转为blobconst a = document.createElement('a');const url = window.URL.createObjectURL(blob); // 创建新的url并指向file对象或blob对象的地址a.href = url;a.download = fileName; // 设置下载文件名a.style.display = 'none'; //避免数据量过大,下载时间长,看到a标签document.body.appendChild(a);a.click();//关键;调用点击事件,(模拟a标签的点击下载效果)document.body.removeChild(a); // 下载完成移除元素window.URL.revokeObjectURL(url); // 释放内存});
}

二、实现逻辑:

首先,整个下载逻辑执行有以下几步:

  1. 前端发起请求拿到后端返回的二进制格式的数据;
  2. 将请求响应体中的二进制目标数据转行为blob类型的数据;
  3. 创建一个a标签,后续的自动下载的关键功能就是利用a.click()实现;
  4. 利用window.URL.createObjectURL(blob)方法,利用第二步转换的blob数据创建出一个url,并赋值给第三步创建的a标签的href属性;
  5. 利用document.body.appendChild(a)a标签添加到body标签中,后执行a.click()实现文件下载;
  6. 下载完成后,要移除a标签,使用代码document.body.removeChild(a)实现;
  7. 释放第四步创建的url地址内存;
  8. 整个下载流程结束。

三、代码解读:

在这里插入图片描述

  1. 如上图,封装了下载文件的函数,其中axios网络请求的编写根据你实际后端定的接口来写,主要目的就是拿到后端返回的二进制数据。其中fileName,是当前请求一个参数,同时也作为后续要用到的文件名。需要注意的是,请求的responseType:"blob"

  2. 二进制格式数据转行blob数据类型的代码;

 const blob = new Blob([res.data], { type: 'application/octet-stream;charset=utf-8' }); // 将二进制流转为blob
  1. 创建a标签;创建url地址;给a标签href属性赋值url地址;执行点击操作;最后移除a标签 释放url内容。
 const a = document.createElement('a');const url = window.URL.createObjectURL(blob); // 创建新的url并指向file对象或blob对象的地址a.href = url;a.download = fileName; // 设置下载文件名a.style.display = 'none'; //避免数据量过大,下载时间长,看到a标签document.body.appendChild(a);a.click(); //关键;调用点击事件,(模拟a标签的点击下载效果)document.body.removeChild(a); // 下载完成移除元素window.URL.revokeObjectURL(url); // 释放内存

四、相关文章:

1.下载后端返回的二进制文件
2.前端实现调用后台接口下载,arraybuffer和blob
3.前端通过axios请求下载excel文件
4.后端返回二进制文件流,前端处理下载
5.vue 后端返回二进制流文件,前端如何实现下载?

http://www.yayakq.cn/news/923587/

相关文章:

  • 做电商网站的设计思路有什么网站开店前的四项基本建设
  • 企业网站都没的百度快照咋办网站设计软件microsoft2013
  • 网站建设计划书模板岷县城乡建设局网站
  • h5一般收费标准怀化网站排名优化
  • 网站建设方面的书籍书籍网站颜色正确搭配实例
  • 陕西省教育类网站前置审批单位网站建设方案
  • 上海门户网站怎么登录网站空间免费 优帮云
  • 网站设计排名北京怎么做电影流量网站
  • 宜昌市高新区建设局网站广州中学生网站制作
  • 宁夏水利厅建设处网站成全视频在线观看免费高清动漫
  • 电子商务网站建设概述jquery特效的网站
  • wordpress写文章显示乱码西安seo外包行者seo06
  • 大型网站的技术架构问题文化传媒有限公司 网站建设
  • 网站制作怎么做下拉菜单食品网站建设策划书
  • win7如何做网站网页设计的一般流程
  • 网站建设+临沂在线代理网页版proxy
  • wap网站预览大型购物网站设计
  • 广西网站建设运营费用合肥做网站加盟
  • 招聘网站建设与开发要求最新国际军事新闻最新消息
  • 网站优化排名多少钱汕头建设信息网官网
  • 香奈儿电子商务网站建设策划书免费网站建设ydwzjs
  • 华为云自助建站哪个网站做漂流瓶任务
  • 安徽建设网官方网站动画设计参考文献
  • 教育培训网站模板下载wordpress advanced
  • 做网站 超速云wordpress友链自定义排序
  • 网站后台管理界面下载seo怎么刷关键词排名
  • 如何整理做网站的素材网站建设西安哪里好
  • 惠州网站建设乐云seo在线制作宾馆网站模板
  • 网站建设中网站图片如何修改开发一款app大概多少钱
  • 北京个人网站设计关键词搜索网站