在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 事件,以模拟点击下载链接,从而触发浏览器的下载行为。
相关推荐
IT_陈寒5 分钟前
SpringBoot 项目启动慢?5 个提速技巧让你的应用快如闪电 ⚡️
前端·人工智能·后端
英俊潇洒美少年6 分钟前
Vue3暂不支持并发渲染
vue.js
IT_陈寒7 分钟前
SpringBoot自动配置的坑,我把头发都快薅没了
前端·人工智能·后端
xkxnq11 分钟前
第六阶段:Vue生态高级整合与优化(第96天) Vue i18n优化:语言包按需加载+缓存当前语言+避免页面刷新失效
前端·vue.js·缓存
进击的雷神14 分钟前
多展会框架复用、Next.js结构统一、北非网络优化、参数差异化配置——阿尔及利亚展爬虫四大技术难关攻克纪实
javascript·网络·爬虫·python
Dxy123931021615 分钟前
Ajax如何发送列表数据
前端·ajax·okhttp
C澒17 分钟前
微前端容器标准化 —— 公共能力篇:通用跨框架通信能力
前端·架构
榴莲omega20 分钟前
第8天:前端面试经典五问
前端·面试·职场和发展·js八股
资讯第一线25 分钟前
RAD Studio 13.1 [DELPHI 13.1] [官方原版IOS] 下载
前端