位置: 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训练自己的数据)

  • 免抵退税办法不得抵扣的进项税额
  • 海运报文是什么意思
  • 财务管理税后利息率计算公式
  • 报销金额大于发票金额几毛钱
  • 计提当月社保会计分录
  • 工程施工科目核算内容
  • 利润总额与毛利的区别
  • 农产品进项抵扣政策
  • 其他债权投资和其他权益工具投资均可以计提减值
  • 聘用劳务人员派遣合法吗
  • 单位购置汽车如何入账
  • 资产损失类型有哪些
  • 个人所得税免征项目有哪些
  • 投资公司的收入就是投资收益吗
  • 私车公用油费计入什么科目
  • 工伤保险费发票
  • 建筑合同通用条款
  • 小规模季度超过30万,普票咋交税
  • 以前年度损益调整贷方余额表示什么
  • 小规模纳税人交企业所得税吗
  • 购入需要安装的固定资产会计科目
  • 企业核销应收账款需要什么资料
  • 采用支票结算方式的基本业务处理程序
  • 领用原材料用于职工福利的税费怎么算
  • 个人出租住房需要交城镇土地使用税吗
  • 第三方开发是什么意思
  • win11系统设置快捷键
  • 对公账户转私人账户手续费多少
  • PHP:spl_autoload_register()的用法_spl函数
  • 以前年度多计提的工资怎么处理
  • 房地产项目如何通过抖音宣传
  • php files
  • 山茶花的养殖方法和注意事项视频
  • 托收账款属于什么会计科目
  • php安装及使用教程
  • php读取文件
  • uni-app实例教程
  • 纳税人性质是什么
  • 开源项目网站
  • php url函数
  • 帝国cms怎么加自己的名字
  • 商业折扣的会计分录
  • 包含个人社保的保险
  • 免抵退税额怎么计算城建税
  • bkuzmic/jquerycrossdomaindataplugin
  • 融资租赁固定资产折旧年限
  • 税务局多扣的税可以退吗
  • 小微企业记账必须有会计证吗
  • 对公账户付个人工资怎么入账
  • 如何理解其他权益工具
  • 业务招待费可以结转下年抵扣吗
  • sql server 2019自定义安装教程
  • 无法使用ie浏览器
  • red hat linux怎么用
  • win8系统 Cisco VPN 442错误怎么办?解决方法介绍
  • win10预览版21337
  • rhel7
  • win8出现蓝屏怎么修复
  • linux系统init命令
  • launch software
  • win7自动更新失败怎么删除更新启动
  • Win10 Mobile RedStone预览版14267.1004更新内容汇总(持续更新)
  • cocos2djs
  • js时间范围
  • python 多线程调用
  • cocos2dx2.2.5在iOS下加入Google AdMob可能会遇到的问题
  • 用javascript
  • chrome version
  • 批处理怎么学
  • node.js java 性能
  • unity3d documentation
  • Android 仿 iphone 自定义滚动选择器
  • 个人去税务局开劳务费怎么开
  • 国家税务总局河南省税务平台
  • 外地经营预缴企业所得税
  • 个人所得税代扣代缴手续费退库申请
  • 各国进口汽车综合税率表
  • 小微企业印花税减免政策2024
  • 国税总局编制这次怎么调整
  • 房地产增值税怎么算举例说明
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设