在vue中实现下载文件功能

实际操作为,在表格中

我们可以获取到文件的id,通过插槽就可以实现

javascript 复制代码
<template #default="scope">
              <el-button type="text" @click="handleDown(scope.row)">
                <span>下载</span>
              </el-button>
</template>
javascript 复制代码
 handleDown(val){
      const a = document.createElement("a");
      const event = new MouseEvent("click");
      a.download = val.attachmentName;
      a.href = 下载文件的基本url + val.documentId;
      a.dispatchEvent(event);
    },

解析上段代码

  1. const a = document.createElement("a");:创建了一个新的 <a> 元素,该元素用于生成下载链接。
  2. const event = new MouseEvent("click");:创建了一个新的 MouseEvent 对象,该对象用于模拟点击事件。
  3. a.download = val.attachmentName;:将下载链接的文件名设置为 val.attachmentName
  4. a.href = 下载文件的基本Url + val.documentId;+后面为参数,也就是文件的id
  5. a.dispatchEvent(event);: dispatch 事件,以模拟点击下载链接,从而触发浏览器的下载行为。
相关推荐
LuckySusu几秒前
【js篇】JavaScript 原型修改 vs 重写:深入理解 constructor的指向问题
前端·javascript
LuckySusu几秒前
【js篇】如何准确获取对象自身的属性?hasOwnProperty深度解析
前端·javascript
LuckySusu5 分钟前
【js篇】深入理解 JavaScript 作用域与作用域链
前端·javascript
LuckySusu5 分钟前
【js篇】call() 与 apply()深度对比
前端·javascript
LuckySusu9 分钟前
【js篇】addEventListener()方法的参数和使用
前端·javascript
该用户已不存在11 分钟前
6个值得收藏的.NET ORM 框架
前端·后端·.net
LuckySusu16 分钟前
【js篇】深入理解 JavaScript 原型与原型链
前端·javascript
文心快码BaiduComate20 分钟前
文心快码入选2025服贸会“数智影响力”先锋案例
前端·后端·程序员
云枫晖33 分钟前
手写Promise-构造函数
前端·javascript
文心快码BaiduComate34 分钟前
用Comate Zulu开发一款微信小程序
前端·后端·微信小程序