1. a标签下载

<a href="" download="">
herf: 此处要填写下载地址 例如:/api/download 等,没有写域名,会自动默认项目默认域名,有多个域名的自己添加标识符
download: 一般不需要,但是用于规定作为文件名来使用的文本,特殊情况下还是需要的,所以以防万一,最好还是带上.

注意: 一般这样下载文件的都是不带token等验证的下载方法,如果必须带token,可以和后端协商在href后面拼接,然后后端去接受验证

2.通过按钮触发调用接口

<el-button @click="downloadBackup(scope.row)" type="text"  class="el-icon-download"size="small"  style="color:#93B762" :disabled="scope.row.statusStr!='成功'"> </el-button>//下载数据备份按钮downloadBackup(row) {this.download(row)}download(row) {download(row.backupFilePath).then(res => {const blob = new Blob([res.data])const fileName = row.backupFileNameconst link = document.createElement('a')link.download = fileNamelink.style.display = 'none'link.href = URL.createObjectURL(blob)document.body.appendChild(link)link.click()URL.revokeObjectURL(link.href)document.body.removeChild(link)});}

这样调用接口,不用担心token等验证问题.

注意:虽然不用担心token验证,但是一般通过接口返回的是数据,会默认在返回里面打开,只能看到完整的数据,但并不会变成下载,所以此处需要通过原生js创建一个a标签链接,设置隐藏属性以及默认点击,通过把数据转成Blob的方式,通过 URL.createObjectURL转化成href的格式被a标签识别,点击后再清除数据和a标签,谨防下次下载数据残留
       const blob = new Blob([res.data])const fileName = row.backupFileNameconst link = document.createElement('a')link.download = fileNamelink.style.display = 'none'link.href = URL.createObjectURL(blob)document.body.appendChild(link)link.click()URL.revokeObjectURL(link.href)document.body.removeChild(link)

上面是转换成blob的代码和创建标签下载的代码

踩过的坑: 按照第二种方式下载,很可能下载的文件里面只有[object,object]

在网上查了很久找到一篇文章解决
文章链接
https://www.cnblogs.com/liangxia/p/12932213.html




vue 下载文件的两种方法相关推荐

  1. 从Linux终端下载文件的2种方法

    如果您坚持使用Linux终端,例如在服务器上,如何从终端下载文件? Linux中没有下载命令,但是有几个用于下载文件的Linux命令. 在这个终端技巧中,您将学习在Linux中使用命令行下载文件的两种 ...

  2. 用python下载文件的若干种方法汇总

    压缩文件可以直接放到下载器里面下载的 you-get 连接 下载任意文件 重点 用python下载文件的若干种方法汇总 写文章 用python下载文件的若干种方法汇总 zhangqibot发表于Met ...

  3. 合并BIN文件的两种方法

    合并BIN文件的两种方法 在单片机的开发过程中,经常需要将两个单独的BIN文件合并成一个文件,方便烧写和生产.下面结合STM32的IAP Bootloader Code和Application Cod ...

  4. python如何实现下载文件_python实现下载文件的三种方法

    python实现下载文件的三种方法 Python开发中时长遇到要下载文件的情况,最常用的方法就是通过Http利用urllib或者urllib2模块. 当然你也可以利用ftplib从ftp站点下载文件. ...

  5. elf格式转换为hex格式文件的两种方法

    这周工作终于不太忙了,可以写点笔记总结一下了. 之前的文章如何在Keil-MDK开发环境生成Bin格式文件,介绍了如何在Keil开发环境使用fromelf软件,将生成的axf文件转换为bin文件,这次 ...

  6. elf格式转换为hex格式文件的两种方法 1

    这周工作终于不太忙了,可以写点笔记总结一下了. 之前的文章如何在Keil-MDK开发环境生成Bin格式文件,介绍了如何在Keil开发环境使用fromelf软件,将生成的axf文件转换为bin文件,这次 ...

  7. python下载方法-python实现下载文件的三种方法_python

    本篇文章主要介绍了python实现下载文件的三种方法,最常用的方法就是通过Http利用urllib或者urllib2模块还有requests,有兴趣的可以了解一下. Python开发中时长遇到要下载文 ...

  8. python下载的文件放在哪里的-python实现下载文件的三种方法

    Python开发中时长遇到要下载文件的情况,最常用的方法就是通过Http利用urllib或者urllib2模块. 当然你也可以利用ftplib从ftp站点下载文件.此外Python还提供了另外一种方法 ...

  9. C#读写txt文件的两种方法介绍[转]

    C#读写txt文件的两种方法介绍 1.添加命名空间 System.IO; System.Text; 2.文件的读取 (1).使用FileStream类进行文件的读取,并将它转换成char数组,然后输出 ...

  10. 文字转语音文件的两种方法

    文件转语音文件的两种方法.小伙伴们在日常的工作.学习或是生活当中,是否遇到过以下这种情况.在工作中每天要阅读大量文件资料,在学习中每天要阅读各种课文,在生活中也会观看各种小说.但是长时间的用眼阅读,就 ...

最新文章

  1. 宗成庆:如何撰写毕业论文?
  2. hdu4717 三分(散点的移动)
  3. java中FutureTask的使用
  4. 你真的懂TensorFlow吗?Tensor是神马?为什么还会Flow?
  5. 【gRPC】ProtoBuf 语言快速学习指南
  6. Struts2自定义的转换器
  7. c语言入门百度贴吧,c语言入门者
  8. Hudson Jameson将在柏林硬分叉后卸任以太坊基金会社区经理
  9. 不知道怎么办了,犹豫中……
  10. 分区供水条件口诀_分区供水高频考点,收藏哦
  11. 帝国cms如何给网站添加百度统计代码,百度统计安装教程步骤分享
  12. 第一章 道法,基础剑诀
  13. 用3ds max 2020制做一个VRay油漆木材材质
  14. mysql 1264_关于MySQL的1264错误处理及sql_mode设置
  15. Android HashTable
  16. 问题:win2008远程桌面连接不上
  17. [置顶] 忆往昔,看今朝(2012-2013年总结)
  18. 知识图谱可视化vue.js + d3.js
  19. linux安装git环境
  20. USART_GetITStatus(USART3,USART_IT_IDLE) ==RESET进入中断问题

热门文章

  1. Oracle备份与恢复介绍
  2. word自带公式编辑_如何在word自带的公式编辑器中设置字体格式
  3. Python 解析风云四A卫星L1级别数据以及绘制卫星云图
  4. 东航建设漏洞管理平台的探索实践
  5. 如何从产品和技术角度上做一个好产品----软件公司如何开源节流(二)
  6. CodeBlocks配置openGL教程
  7. 树莓派专用msata硬盘转接板
  8. 子龙山人Learn Emacs in 21 Days: day 7 学习笔记
  9. 卓有成效的管理者(笔记)——序言
  10. 工作流:一文让你学会使用flowable工作流