在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 事件,以模拟点击下载链接,从而触发浏览器的下载行为。
相关推荐
POLITE34 分钟前
Leetcode 160.相交链表 JavaScript (Day 9)
javascript·leetcode·链表
北辰alk10 分钟前
Vue 3 深度解析:watch 与 watchEffect 的终极对决
vue.js
Zyx200712 分钟前
构建现代 React 应用:从项目初始化到路由与数据获取
前端
大布布将军17 分钟前
☁️ 自动化交付:CI/CD 流程与云端部署
运维·前端·程序人生·ci/cd·职场和发展·node.js·自动化
LYFlied17 分钟前
Vue.js 中的 XSS 攻击防护机制详解
前端·vue.js·xss
七宝三叔22 分钟前
C#,为什么要用LINQ?
前端
七宝三叔23 分钟前
用「点外卖」的例子讲透HttpClient
前端
再睡一夏就好37 分钟前
LInux线程池实战:单例模式设计与多线程安全解析
linux·运维·服务器·开发语言·javascript·c++·ecmascript
Beginner x_u40 分钟前
从 Promise 到 async/await:一次把 JavaScript 异步模型讲透
javascript·ajax·promise·异步·async await
C_心欲无痕1 小时前
nodejs - pnpm解决幽灵依赖
前端·缓存·npm·node.js