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

  • 固定资产清理亏损的账务处理
  • 基本户可以开立几个
  • 新公司开基本户银行选择
  • 房地产预售啥意思
  • 税控盘抵扣增值税有时间限制吗
  • 未取得发票的收入怎么做账
  • 进口货物的代理报关服务费计入
  • 费用一定计入当期损益吗
  • 火车票退票手续费扣多少
  • 个体户税务登记怎么注销
  • 纳税人签字
  • 增值税专用发票电子版
  • 公司股东会承担法律责任吗
  • 为什么纳税人不是负税人
  • 无形资产怎么衡量
  • 发票上月开本月到账要交企业所得税吗?
  • 年底有留抵税额需要结转吗
  • 销售劳务的税率是多少
  • 微型小型车
  • 企业所得税一季度盈利二季度亏损
  • window10环境变量
  • win7 右键 没反应怎么办
  • 替换重置的设备更新应考虑
  • linux如何放大字体
  • 房地产企业增值税怎么计算
  • 虚拟机是什么意思
  • 阿查法拉亚盆地牡蛎
  • php开发过程遇到的难题
  • 北极野生动物
  • 无法按时交纳税怎么办
  • 购买原材料产生的费用
  • yii2框架从入门到精通
  • 财务费用汇兑损失是什么
  • 二季度平均薪酬
  • 工程施工资产负债表存货计算公式
  • 银行承兑汇票收费标准
  • 支付银行贷款利息现金流量表填哪里
  • 开具增值税专用发票的规定
  • java静态方法和动态方法的区别
  • sql按分隔符截取
  • 收据大写后面的空格怎么填
  • 商品削价的核算
  • 差旅费税前扣除政策
  • 公司购买新车怎么入账
  • 广告设计要交文化事业建设
  • 存货报废进项税额需要转出吗
  • 经营过程中借股怎么处理
  • 递延所得税当前试用25%,以后15%
  • 销售折扣销货方式有哪些
  • 未发货未收款先开具发票怎么账务处理
  • 购买商品加包装怎么入账
  • 收到的专项资金怎么入账
  • 公司进项不够可以退税吗
  • 定期存款怎么做
  • 设置出纳权限的操作步骤
  • 私营企业会计退休年龄50还是55
  • 商业银行存款业务规则
  • mysql服务自动停止运行
  • SQLServer中SELECT语句的执行顺序
  • icloud win10
  • win8更改桌面位置
  • ubuntu16.04lts
  • cad90度角
  • 华硕和联想笔记本电脑哪个好点
  • 详解linux中systemd命令的运行级别与其常见应用
  • Win10桌面版红石预览版14295更新(修复)、已知问题及解决方案汇总
  • datatable.load
  • textview可以点击吗
  • dos批处理教程
  • Linux中获取某个进程的系统调用以及参数(故障排查案例)
  • linux中awk用法详解
  • javascript高级程序设计电子书
  • android自定义listview
  • 用js自动判断浏览记录
  • python守护线程与非守护线程
  • kraken框架
  • python二分查找非递归
  • python如何运用
  • 广东电子税务局手机版
  • 泰兴市地方税务局
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设