Vue实现下载文件功能(通过a标签、点击按钮、二维码下载文件功能)

效果图:
在这里插入图片描述
业务需求:每行数据都有自己的文件路径保存在数据库中,如何获取文件保存在数据库的路径并下载该文件?

常见基础

1、通过a标签下载文件

<a href="http://127.0.0.1/我和我的祖国.jpg" download="我和我的祖国.jpg" target="_blank">点击下载</a>

动态下载不会写怎么办?

可以尝试用以下的方法:

2、window.open()

<el-button
	  size="mini"
	  type="text"
	  icon="el-icon-thumb"
	  @click="getFileSrc(scope.row)"
	  v-hasPermi="['system:order:download']"
	  >下载</el-button
>
methods:{
	/** 下载文件存储路径 */
    getFileSrc(row) {
      window.open(row.fileSrc,"_blank");
    },
}

3、按钮 + 动态a标签

<el-button type="primary" size="small" @click="exportDetail()">导出明细</el-button>
// 导出Excel表格明细
exportDetail() {
    let anchor = document.createElement("a");
    let query = '?id=' + this.id + '&name=' + this.name
    let url = '/xxx/xxx/xxxList/export'
    anchor.href = window.SITE_CONFIG['apiURL'] + url + query
    anchor.setAttribute("target", '_blank');
    anchor.innerHTML = "downloading...";
    anchor.style.display = "none";
    document.body.appendChild(anchor);
    setTimeout(() => {
      anchor.click();
      document.body.removeChild(anchor);
      setTimeout(() => { self.URL.revokeObjectURL(anchor.href); }, 250);
    }, 66);
}

4、二维码
在这里插入图片描述

<div class="box">
  <span>二维码</span>
  <div class="vueQr"><img :src="preview.qrcodeUrl"></div>
  <div class="btn">
    <a :href="preview.qrcodeUrl" :download="preview.title">下载二维码</a>
  </div>
</div>
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值