在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 事件,以模拟点击下载链接,从而触发浏览器的下载行为。
相关推荐
just小千12 分钟前
HTML进阶——常用标签及其属性
前端·html
惜.己13 分钟前
html笔记(一)
前端·笔记·html
Lsx-codeShare17 分钟前
一文读懂 Uniapp 小程序登录流程
前端·javascript·小程序·uni-app
曹牧17 分钟前
HTML实体名称
前端·html
小胖霞20 分钟前
Node+Express+MySQL 后端生产环境部署,实现注册功能(三)
前端·后端
一 乐21 分钟前
农产品电商|基于SprinBoot+vue的农产品电商系统(源码+数据库+文档)
java·前端·javascript·数据库·vue.js·spring boot
云鹤_22 分钟前
【Amis源码阅读】低代码如何实现交互?(上)
前端·低代码
地狱恶犬萨煤耶41 分钟前
JavaScript-小游戏-2048
javascript
爱心发电丶1 小时前
基于UniappX开发电销APP,实现CRM后台控制APP自动拨号
javascript