位置: 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
  • 进项税额加计抵减如何申报
  • 增值税纳税申报实训心得体会
  • 个人有形动产租赁
  • 研发支出和研发费用是一个吗
  • 代扣个税手续费返还增值税税率
  • 怎样清理ie
  • 手工明细分类账本怎么记
  • 出库单可以补吗
  • 对公帐户定期存款利率
  • PHP:Memcached::getResultMessage()的用法_Memcached类
  • linux块设备驱动详解
  • 查补以前年度税款账务处理
  • 简易计税办法和一般计税办法
  • Vue3+ElementPlus el-date-picker设置可选时间范围
  • 用友结算成本处理的作用
  • PHP:imagecolorset()的用法_GD库图像处理函数
  • 了解的反义词
  • 信用减值损失属于费用类科目吗
  • 2020ccf csp报名和考试时间
  • 关于猿猴的作文
  • 收到退税款怎么做账
  • 交印花税的口诀
  • 如何登记现金明细账
  • 增值税发票名称可以写个人吗
  • 个体工商户可以开对公账户吗
  • 计提工资薪金
  • 客户货款打到私人微信,删除公司电脑数据
  • 收据所得税前扣除
  • 增值税税控系统专用设备费及技术维护费抵扣
  • 销项税用转出吗
  • 软件续费应记什么科目
  • 应付账款负数如何调整账务
  • 本月没有认证的进项税怎么做分录
  • 公司员工聚餐属于什么费用
  • 公司向职工借钱怎么做账
  • 企业成立第二年有补贴吗
  • mysql 多表联合更新
  • mysql分页实现
  • 微软宣布9款游戏退出XGP订阅
  • win10一年更新一次
  • ubuntu help
  • win8系统怎么设置桌面图标
  • 跨域请求的三种方法
  • jqueryon事件
  • dos常用命令与批处理文件
  • css可继承
  • 只用html和css
  • jquery遍历radio并选中
  • linux系统启动进程命令
  • python中的is和==的区别
  • python class类型
  • 怎么用bootstrap搭建网站
  • python 列表排序 中文
  • 安卓开发界面ui设计器
  • python编程简单案例
  • 税务局通知自查该怎么办理
  • 21年小规模企业所得税税率
  • 白酒的消费税怎么算计算列题
  • 北京税务局公众平台官网
  • 江苏企业所得税税率2023
  • 车辆购置税交了怎么查询不到
  • 常设机构怎么缴纳所得税
  • 举报信如何投递
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设