在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 事件,以模拟点击下载链接,从而触发浏览器的下载行为。
相关推荐
思想者00112 分钟前
Chrome访问https页面显示ERR_CERT_INVALID,且无法跳过继续访问
前端·chrome
x_chengqq4 小时前
前端批量下载文件
前端
捕鲸叉6 小时前
QT自定义工具条渐变背景颜色一例
开发语言·前端·c++·qt
傻小胖6 小时前
路由组件与一般组件的区别
前端·vue.js·react.js
Elena_Lucky_baby6 小时前
在Vue3项目中使用svg-sprite-loader
开发语言·前端·javascript
小万编程7 小时前
基于SpringBoot+Vue毕业设计选题管理系统(高质量源码,提供文档,免费部署到本地)
java·vue.js·spring boot·计算机毕业设计·java毕业设计·web毕业设计
重生之搬砖忍者7 小时前
uniapp使用canvas生成订单小票图片
前端·javascript·canva可画
万水千山走遍TML7 小时前
console.log封装
前端·javascript·typescript·node·log·console·打印封装
赵大仁7 小时前
uni-app 多平台分享实现指南
javascript·微信小程序·uni-app
阿雄不会写代码7 小时前
使用java springboot 使用 Redis 作为消息队列
前端·bootstrap·html