Vue 图片下载功能

又做了一个图片下载的功能,下面是代码

 download(row) {
      this.id = row.id;
      const id = this.id;
      fetch("URL", {      // 这里写下载请求的URL地址 
        method: "GET",
        headers: {
          "Content-Type": "application/json",
        },
        params: {
          id: id,
        },
      })
        .then((response) => response.blob())
        .then((blob) => {
          const url = URL.createObjectURL(blob);
          const a = document.createElement("a");
          a.href = url;
          a.download = "query_result.json";
          a.click();
          URL.revokeObjectURL(url);
        })
        .catch((error) => console.error("下载失败", error));
    },
<template slot-scope="scope">
    <el-button size="mini" type="text" icon="el-icon-edit" @click="download(scope.row)">下载</el-button>
<template>
  1. 将传入的row.id赋值给本地变量idthis.id,以确保在请求发送后id的值不会改变。

  2. 使用Fetch API发送GET请求到你的URL地址,并设置请求头的Content-Typeapplication/jsonparams字段在Fetch API中无效,你需要将id作为查询参数拼接在URL中。

  3. 在链式调用中,首先将响应转换为Blob对象。

  4. 将Blob数据转换为URL链接。

  5. 创建一个a标签,并设置链接(href)和下载(download)属性。

  6. 将a标签添加到文档中。

  7. 调用a.click()模拟点击a标签,从而触发文件下载。

  8. 最后通过URL.revokeObjectURL(url)释放URL对象,避免内存泄漏。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值