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

  • 增值税专用发票的税率是多少啊
  • 所得税汇算清缴表在哪里打印
  • 所得税优惠政策最新2022
  • 所得税预缴怎么做分录
  • 支付宝商户服务电话
  • 综合收益什么时候结算
  • 没有发票的费用可以抵扣企业所得税吗
  • 工程结余物资清理方案
  • 个人交的社保发票怎么开
  • 快递行业的收入与成本
  • 企业哪些可以抵扣增值税
  • 建筑业在外地预缴的所得税能退吗
  • 合并报表盈余公积跟母公司有什么关系
  • 小规模免征增值税政策
  • 代扣代缴增值税计算公式
  • 生产车间广告牌设计图片
  • 往来形式的投资款是借款吗
  • 企业一次性支付多年费用 不摊销
  • 与收益相关的政府补助的确认
  • 应付职工薪酬年底怎么结转
  • 苹果电脑mac系统怎么用
  • linux测验
  • 购买土地前期费用怎么入账
  • php编写
  • php文件上传用什么请求方法
  • thinkphp框架介绍
  • 季节性用工政策
  • php调用图片
  • Laravel 5.4因特殊字段太长导致migrations报错的解决
  • 即征即退进项税转出
  • pytorch中的数据类型
  • 音频的时域波形
  • vue split函数
  • 关于hashcode和equals,下列哪些说法是错误的
  • 税负率怎么计算举例子
  • 兼职工作是单位工作吗
  • 企业合并兼并收购的区别和联系
  • 永续债偿付顺序
  • 国家税务局监制的票还能用吗
  • <四>2:掌握Const 与一二级指针结合应用
  • mysql深入理解
  • SQL Server FileStream详解
  • 安装路灯会计分录
  • 小微企业所得税优惠政策最新2023
  • 差旅补助要计入成本吗
  • 工地会计内账
  • 固定资产怎么进行无形资产清理的
  • 企业返聘退休人员需要交社保吗
  • 结账的内容和程序是什么
  • 企业利息收入需要缴纳所得税吗
  • 专职独立研发企业是指
  • 同一控制下企业合并
  • 冲以前年度成本分路
  • 存货核算科目设置
  • 一般哪些收据可以抵扣
  • 营改增对建筑业税负的影响
  • 一般纳税人增值税减免政策2023
  • 其他应付款的有
  • 确定固定资产的标准
  • 国际航班怎么报销
  • 会计审计属于什么类别
  • 建造固定资产的账务处理(出包方式)
  • 如何为报表指定数据源?
  • linux系统bug
  • xp系统做完了进不去
  • win8 重置
  • 联想安装xp系统
  • win10mobile还能用吗
  • Win10更新KB3156421补丁后出现设备运行缓慢现象的解决方案
  • win7自带桌面时钟吗
  • win8点设置没反应
  • cocos2d-x 3.4 windows 环境配置
  • 原生javascript开发
  • javascript基于什么的语言
  • selenium py
  • dom方法总结
  • jq 使用
  • python运行flask
  • 电力企业所得税按期
  • 临汾的公司需要交社保吗
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设