根据后端返回的url实现下载功能

需求描述: 根据后端返回的url实现下载功能

/** download All*/
const downMethod = data => {
  axios({
    method: data.method,
    url: apiUrl + data.url,
    params: data.params,
    responseType: "blob"
  }).then(res => {
    let timestamp = new Date().getTime();
    const link = document.createElement("a");
    let blob = new Blob([res.data], {
      type: getFileType(data.params.fileType)
    });
    link.style.display = "none";
    link.href = URL.createObjectURL(blob);
    link.download = data.fileName + moment(timestamp).format("YYYY-MM-DD"); //下载的文件名
    document.body.appendChild(link);
    link.click();
    document.body.removeChild(link);
    // Message({
    //   type: "success",
    //   message: "下载成功",
    //   center: true
    // });
  });
};
<div style="margin-top:22px;margin-bottom:22px;" v-if="basicInfos.produceAppendix.length>0">
          <div class="download" v-for="(item,index) in basicInfos.produceAppendix" :key="index">
            <span>{{item.appendixName}}</span>
            <span style="cursor:pointer;color:#169BD5;padding-left:15px;" @click="download(item)">下载</span>
          </div>
        </div>
        <div v-else style="margin-left:20px;margin-bottom: 16px;">暂无附件</div>
</div>

关键操作:调用utils.js里面的方法,处理文件名称。

//method里面的方法
    // 下载
    download(item) {
      utils.downMethod({
        method: "get",
        url: "/download",
        fileName: item.appendixName.split(".")[0], //截取文件名
        params: {
          fileType: item.appendixName.split(".")[1], //截取文件名后缀
          filePath: item.appendixAddress
        }
      });
    },
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值