前端手把手教你js实现附件预览和下载得功能实现

在项目中,经常会遇到做项目关于实现附件预览和下载得功能,那么怎么来实现呢:

在学习之前,首先会应用到Blob相关得知识点:

那么blob到底是什么呢

先让我们看看官方关于blob得介绍

 文章来自于Blob - Web API 接口参考 | MDN (mozilla.org)

Blob 对象表示一个不可变、原始数据的类文件对象。它的数据可以按文本或二进制的格式进行读取,也可以转换成 ReadableStream 来用于数据操作。

Blob 表示的不一定是 JavaScript 原生格式的数据。File 接口基于 Blob,继承了 blob 的功能并将其扩展以支持用户系统上的文件。

先让我们直接上代码: 

文件下载实现代码逻辑:

  downloadFile(file.fileId)
        .then((res) => {
          const blob = new Blob([res.data]);
          const href = URL.createObjectURL(blob);// 创建新的URL表示指定的blob对象
          const a = document.createElement('a');// 创建a标签
          a.style.display = 'none';
          // 指定下载链接
          a.href = href;
          // 指定下载文件名
          a.setAttribute('download', targetFile.name);
          a.click();// 触发下载
          URL.revokeObjectURL(a.href);// 释放URL对象
        })

file.fileId是文件id

文件预览实现逻辑:

 downloadFile(file.fileId)
      .then((res) => {
        const pdfFile = window.URL.createObjectURL(
           new Blob([res.data],{type: 'application/pdf'})
        );
        // 跳转页面预览
        window.open(pdfFile);
        URL.revokeObjectURL(pdfFile);//释放URL对象
      })

然后就可以预览和实现了

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值