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

  • 盈利能力的概念及内容
  • 下列各项中免征增值税的有
  • 房产税从租和从价
  • 免税农产品发票需要勾选吗
  • 计提工资和实际发放工资必须一致吗
  • 服装业增值税专用发票税率
  • 依法确定的其他扣除项目包括
  • 固定资产残值怎么处理什么时候处理
  • 合同租金总收入怎么填
  • 一次性筷子的消费税
  • 母公司收取服务费请示
  • 向金融企业借款利息支出可以税前扣除吗
  • 小规模企业有了增值税吗
  • 应付账款坏账处理说明
  • 财政拨款的事业单位有哪些
  • 收到银行退回的银行汇票多余款
  • 发票有误多交的钱怎么办
  • 税控信息表
  • 滞留票的进项税能抵扣吗
  • 企业固定资产损失包括
  • 个人汽车贷款所购车辆
  • 超市收取的返利的税收处理
  • 集团和区域公司的关系
  • 应纳税所得额未减上季度所得税,下季度可补减吗
  • 开立银行承兑汇票清单怎么盖章
  • 用于非应税项目的购进货物或应税劳务
  • 分配水电费会计分录怎么写
  • 怎么免费获取流量
  • 本月暂估成本的会计分录
  • pqhelper.exe是什么进程 pqhelper进程查询
  • 求源代码
  • 营改增后如何纳税
  • 企业合并一般债权怎么算
  • php删除数组中指定元素
  • php实现文件上传需要使用哪个全局变量
  • php shell_exec()
  • 实现会话跟踪的两种方式
  • python标准库在哪个目录
  • vue中的组件
  • 功能强大的php发展趋势
  • yii框架教程
  • ps怎么把多余的p掉
  • 未开票金额怎么填写
  • 小规模季报成功后怎么缴费
  • python的基本风格
  • PostgreSQL中使用dblink实现跨库查询的方法
  • SQLite3中的日期时间函数使用小结
  • 以前年度未入账固定资产账务处理
  • 出口运保费是什么费用
  • 没有发票的房租怎么入账
  • 房地产会计开发工资高吗
  • acca考试安排及时间
  • 少数股东权益贷方表示什么意思
  • 应付账款一直挂着,怎么消掉
  • 制造费用结转到哪个科目
  • 银行询证函快递费谁负担运费
  • 《新会计准则》
  • 彻底删除sql server2019
  • SQLServer中SELECT语句的执行顺序
  • win7登录设置
  • 怎么取消win10通知消息
  • mmc.exe是什么
  • 笔记本运行WINCC不显示全屏
  • win8自带软件哪些可以卸载
  • 模型图怎么画
  • js opendialog
  • jquery验证
  • Android 让EditText失去焦点避免自动弹出输入法
  • js按下键盘事件
  • 可交互原型是什么
  • 修改文件名ren
  • 细说javascript
  • node 操作mysql
  • 噩梦pv
  • 河南省地方税务局房产税管理办法
  • 税务申报热线电话
  • 多交了个人所得税怎么算
  • 车辆购置税查询电话
  • 差额征税差额开票怎么理解
  • 发票号码的8位是什么
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设