位置: IT常识 - 正文

【vue】vue中下载文件的方法(vue下载安装)

编辑:rootadmin
【vue】vue中下载文件的方法 文章目录1. 下载后端返回文件1.1 后端为post请求返回二进制流文件URL.createObjectURLFileReader1.2 后端直接返回get请求文件2. 下载本地文件1. 下载后端返回文件1.1 后端为post请求返回二进制流文件

推荐整理分享【vue】vue中下载文件的方法(vue下载安装),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:vue 下载功能,vue下载方法,vue下载安装,vue下载方法,vue下载方法,vue 下载,vue 下载,vue 下载,内容如对您有帮助,希望把文章链接给更多的朋友!

Blob

Blob对象标识一个不可变、原始数据的类文件对象。Blob表示的不一定是JavaScript原生格式的数据

responseType

responseType它表示服务器响应的数据类型,由于后台返回来的是二进制数据,所以要把它设为‘blob’

【vue】vue中下载文件的方法(vue下载安装)

通过设置responseType为blob,可以直接拿到二进制文件转化为Blob,两种使用 Blob 实现文件下载的方式

URL.createObjectURL

在浏览器端,实现直接下载文件,就是使用a标签来只想文件的下载地址。window.location.href的本质也是这样,因此在拿到二进制文件对应的Blob对象后,需要为这个Blob对象创建一个指向它的下载地址的URL

URL.createObjectURL 方法则可以实现接收 File 或 Blob 对象,创建一个 DOMString,包含了对应的 URL,指向 Blob 或 File 对象,它看起来会是这样:

“blob:http://localhost:8080/a48aa254-866e-4c66-ba79-ae71cf5c1cb3”

完整使用:

export const downloadFile = (fileStream, name, extension, type = "") => { const blob = new Blob([fileStream], {type}); const fileName = `${name}.${extension}`; if ("download" in document.createElement("a")) { const elink = document.createElement("a"); elink.download = fileName; elink.style.display = "none"; elink.href = URL.createObjectURL(blob); document.body.appendChild(elink); elink.click(); URL.revokeObjectURL(elink.href); document.body.removeChild(elink); } else { navigator.msSaveBlob(blob, fileName); }};FileReader

FileReader 对象也可以使得我们对 Blob 对象生成一个下载地址 URL,它和 URL.createObject 一样可以接收 File 或 Blob 对象。 这个过程,主要由两个函数完成readAsDataURL和onload,前者用于将Blob或File对象转为对应的URL,后者用于接收前者完成后的URL,它会在e.target.result上 完整使用:

const readBlob2Url = (blob, type) =>{ return new Promise(resolve => { const reader = new FileReader() reader.onload = (e) => { resolve(e.target.result) } reader.readAsDataURL(blob) })}1.2 后端直接返回get请求文件

<a href=‘get请求返回的地址’></a>

2. 下载本地文件

前端项目中下载某个地址的文件模块,文件不想放到后端去下载,在文件大小不太大的情况下,可以把文件放在前端项目中,无论开发环境还是生产环境,都能在同样路径下找到那个文件 1.在vue-cli3.x的版本中,将需要下载的文件放到public文件夹中 2.下载文件

<script>downloadUrl: `${process.env.BASE_URL}file/xxx_template.xlsx`, // 模板下载文件地址</script><template><a :href="downloadUrl">点击下载</a></template>

参考: 详解,从后端导出文件到前端(Blob)下载过程

本文链接地址:https://www.jiuchutong.com/zhishi/288760.html 转载请保留说明!

上一篇:使用c++onnxruntime部署yolov5模型并使用CUDA加速(超详细)(使用二氧化碳灭火器时人应该站在什么位置)

下一篇:YOLO_V8训练自己的数据集(yolov8训练自己的数据)

  • 小天才z7可以刷公交卡吗(小天才z7可以刷公交吗)

    小天才z7可以刷公交卡吗(小天才z7可以刷公交吗)

  • 格力空调哪个模式是换气通风(格力空调哪个模式最省电 睡眠 节能)

    格力空调哪个模式是换气通风(格力空调哪个模式最省电 睡眠 节能)

  • 华为watch2如何连接手机(华为watch2如何连接手机用的软件)

    华为watch2如何连接手机(华为watch2如何连接手机用的软件)

  • 华为怎么给app改名字(华为怎么改软件)

    华为怎么给app改名字(华为怎么改软件)

  • 小米为啥没出7(小米为啥没出70寸电视)

    小米为啥没出7(小米为啥没出70寸电视)

  • 怎样固定手机屏幕不要让旋转(怎样固定手机屏,不让转动)

    怎样固定手机屏幕不要让旋转(怎样固定手机屏,不让转动)

  • 在微机中1mb准确等于(在微型计算机中,1mb准确地等于)

    在微机中1mb准确等于(在微型计算机中,1mb准确地等于)

  • 扫描分辨率多少清晰(扫描分辨率怎么调)

    扫描分辨率多少清晰(扫描分辨率怎么调)

  • spk/mic插在主板哪里(speaker插主板哪个接口)

    spk/mic插在主板哪里(speaker插主板哪个接口)

  • 对方加好友过于频繁怎么办(对方加好友过于频繁是多少个人)

    对方加好友过于频繁怎么办(对方加好友过于频繁是多少个人)

  • 华为手机进水一直黑屏但可以用是为什么(华为手机进水一切正常怎么办)

    华为手机进水一直黑屏但可以用是为什么(华为手机进水一切正常怎么办)

  • 手机怎么设置两个密码两个桌面(手机怎么设置两个微信桌面)

    手机怎么设置两个密码两个桌面(手机怎么设置两个微信桌面)

  • 光猫有wifi功能还需要路由器吗(光猫有wifi功能的好还是没有好)

    光猫有wifi功能还需要路由器吗(光猫有wifi功能的好还是没有好)

  • 微信打车怎么修改目的地(微信打车怎么修改行程)

    微信打车怎么修改目的地(微信打车怎么修改行程)

  • 抖音直播点亮什么意思(抖音直播点灯什么意思)

    抖音直播点亮什么意思(抖音直播点灯什么意思)

  • 华为bkktl00是什么型号(华为bkkal00)

    华为bkktl00是什么型号(华为bkkal00)

  • 小米6快充多久能充满(小米6快充多久可以充满)

    小米6快充多久能充满(小米6快充多久可以充满)

  • 小米m1803e6e是什么型号(小米m180e4a是什么型号)

    小米m1803e6e是什么型号(小米m180e4a是什么型号)

  • word怎么设置页码(word怎么设置页边距)

    word怎么设置页码(word怎么设置页边距)

  • 麒麟980支持5g吗(麒麟980搭载哪些手机)

    麒麟980支持5g吗(麒麟980搭载哪些手机)

  • 8p处理器是多少(苹果8p处理器多少)

    8p处理器是多少(苹果8p处理器多少)

  • CPU版本的Pytorch安装教程(AMD显卡),附详细图解(cpu版本的pytorch可以运行LSgan嘛)

    CPU版本的Pytorch安装教程(AMD显卡),附详细图解(cpu版本的pytorch可以运行LSgan嘛)

  • ChatGPT API接口使用+fine tune微调+prompt介绍(api接口长什么样)

    ChatGPT API接口使用+fine tune微调+prompt介绍(api接口长什么样)

  • 【JavaScript速成之路】一文带你初识JavaScript(javascript速成要多久)

    【JavaScript速成之路】一文带你初识JavaScript(javascript速成要多久)

  • 个税应纳税所得额是要上交的钱吗
  • 减免的企业所得税计入什么科目
  • 金融保险业税目
  • 怎么结转未交增值税
  • 医疗费用收费票据
  • 基本户借款 一般户可以还吗
  • 公司给员工报销话费怎么做账
  • 自然人城建税减半征收
  • 土地以租代卖,违法吗
  • 房产过户需要缴纳土地出让金吗
  • 单位部分承担个人借款利息个税的计算
  • 先进制造业企业按照当期可抵扣进项税额
  • 业务协作费是什么
  • 工程维修费用怎么入账
  • 给分公司开发票由总公司付款怎么办?
  • 金蝶软件怎么设置会计科目
  • 去年没有交社保,今年交了有用吗
  • 承兑汇票属于现金支付吗
  • 收到生育津贴的短信是真的吗
  • win7对话框文本框在哪里
  • 中秋购物
  • vue 拖拽到目标区域
  • 新买的笔记本电脑需要装系统吗
  • 银行罚息计入什么会计科目
  • 限售股是好是坏
  • vue 使用高德地图
  • sass转化为css
  • 如何修改家里的wifi密码
  • web前端性能响应时间
  • web过滤器的常见应用
  • 应收账款的
  • 出差托运行李公司报销吗
  • 从公账发工资是什么凭证
  • 做账计提是什么意思
  • mssql使用教程
  • dedecms 授权
  • opengl全称
  • 一般纳税人给小规模开普票的税率
  • 房地产企业开发成本科目明细
  • 税控盘服务费抵减增值税如何申报
  • 不动产经营租赁包括哪些内容
  • 装饰公司购入材料税额会计分录
  • 企业专利权拥有人是指
  • 投资收益属于营业外收入吗为什么
  • 建筑企业增值税怎么算
  • 两种原因
  • 专票金额和实际报销金额不符
  • 享受优惠政策的通知
  • 领用生产用原材料一批
  • 去银行更换帐户需要什么
  • 先开收据再打款
  • 账本还用贴印花税票吗
  • 税控盘被锁死
  • 金税盘一直没用过
  • sql server数据库怎么导出
  • mysql查询id最大的记录
  • win7系统命令激活
  • centos 安装
  • win10正版系统禁止设置密码
  • dcs是什么文件
  • 奇兔刷机可以救砖吗
  • 联想系统win8
  • SUSE Linux Enterprise Server 设置防火墙开启ssh远程端口的方法
  • 电脑关机没反应怎么办出现一个对话框
  • win10更新后电脑黑屏
  • Linux history命令的几个使用小技巧
  • ExtJs事件机制基本代码模型和流程解析
  • 你不一定知道的地方
  • unitystudio手机版
  • 安卓版影音播放器哪个好用
  • jquery 右键菜单
  • javascript怎么写
  • jquery怎么实现单页面
  • 图片在线预览html5
  • 用python做
  • javascript怎么学好
  • python语言中
  • java learning
  • 电子税务局怎么添加开票员
  • 造纸及纸制品业属于什么行业
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设