在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 事件,以模拟点击下载链接,从而触发浏览器的下载行为。
相关推荐
许商2 小时前
【stm32】【printf】
java·前端·stm32
JIngJaneIL2 小时前
智慧物业|物业管理|基于SprinBoot+vue的智慧物业管理系统(源码+数据库+文档)
java·前端·数据库·vue.js·spring boot·论文·智慧物业管理系统
爬坑的小白2 小时前
vue 2.0 路由跳转时新开tab
前端·javascript·vue.js
爬坑的小白2 小时前
vue x 状态管理
前端·javascript·vue.js
凌览2 小时前
一键去水印|5 款免费小红书解析工具推荐
前端·javascript·后端
有意义2 小时前
栈数据结构全解析:从实现原理到 LeetCode 实战
javascript·算法·编程语言
lichong9512 小时前
鸿蒙 web组件开发
前端·typescript
1024小神2 小时前
在html中使用js动态交换两个元素的位置
前端
鹿鹿鹿鹿isNotDefined2 小时前
逐步手写,实现符合 Promise A+ 规范的 Promise
前端·javascript·算法
一千柯橘2 小时前
Electron - IPC 解决主进程和渲染进程之间的通信
前端