前端:接口返回文件流,pdf,excel等文件实现下载及预览

42 篇文章 1 订阅
14 篇文章 0 订阅

写在前面

        在做网站的过程中,遇到预览和下载的需求是很常见的,在此记录实现过程,以供有需要的朋友使用和学习。

文件流

        接口返回的报文示例如下图,为文件流格式:

    

下载

        以下为下载实现代码,根据备注稍作修改即可直接使用:

// 下载
ticketFaceDownload() {
       this.$http({
        url: "/xxxxxx/xxxxx/xxxxx", // 接口地址
        method: "get",
        responseType: "blob", // 需要加上
        params: { // 接口需要的参数,视个人情况而定
          ticketBizId:this.ViewData.ticketId,
          packageNo: this.ViewData.superInfoList[0].packageNo,
          ticketRange: this.ViewData.superInfoList[0].ticketRange
        },
      }).then((res) => {
        const blob = new Blob([res.data]); //excel,pdf等
        const href = URL.createObjectURL(blob); //创建新的URL表示指定的blob对象
        const a = document.createElement("a"); //创建a标签
        a.style.display = "none";
        a.href = href; // 指定下载链接
        a.download = '票面凭证.pdf'; //指定下载文件名
        a.click(); //触发下载
        URL.revokeObjectURL(a.href); //释放URL对象
      });
   },

预览

        以下为预览实现代码,根据备注稍作修改即可直接使用:

// 预览
ticketFaceView() {
      this.$http({
        url: "/xxxxxx/xxxxx/xxxxx", // 接口地址
        method: "get",
        responseType: "blob", // 需要加上
        params: { // 接口需要的参数,视个人情况而定
          ticketBizId:this.ViewData.ticketId,
          packageNo: this.ViewData.superInfoList[0].packageNo,
          ticketRange: this.ViewData.superInfoList[0].ticketRange
        },
      }).then((res) => {
         const pdfFile = window.URL.createObjectURL(
              new Blob([res.data], { type: "application/pdf" })
            );
            // 跳转页面预览
            window.open(pdfFile);
            URL.revokeObjectURL(pdfFile); //释放URL对象
      });
    },

 写在最后

        以上就是今天的所有内容啦,再会朋友们。

  • 4
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 6
    评论
前端实现在线预览常用文件的方法有两种: 1. 使用第三方插件或工具,如 Google Docs、Office Online、PDF.js 等,这些工具可以将文件转化为网页格式进行在线预览。 2. 使用 HTML5 提供的文件预览功能,支持预览常用的图片、音频、视频和 PDF文件。 下面分别给出实现方法和示例代码: 1. 使用第三方插件或工具 Google Docs 示例: ```html <!-- 在 HTML 中嵌入 Google Docs 预览链接 --> <iframe src="https://docs.google.com/gview?url=http://example.com/sample.docx&embedded=true"></iframe> ``` Office Online 示例: ```html <!-- 在 HTML 中嵌入 Office Online 预览链接 --> <iframe src="https://view.officeapps.live.com/op/embed.aspx?src=http://example.com/sample.docx"></iframe> ``` PDF.js 示例: ```html <!-- 在 HTML 中嵌入 PDF.js 预览链接 --> <iframe src="https://mozilla.github.io/pdf.js/web/viewer.html?file=http://example.com/sample.pdf"></iframe> ``` 2. 使用 HTML5 提供的文件预览功能 图片预览示例: ```html <!-- 在 HTML 中嵌入图片预览 --> <img src="http://example.com/sample.jpg" alt="Sample Image" /> ``` 音频预览示例: ```html <!-- 在 HTML 中嵌入音频预览 --> <audio src="http://example.com/sample.mp3" controls></audio> ``` 视频预览示例: ```html <!-- 在 HTML 中嵌入视频预览 --> <video src="http://example.com/sample.mp4" controls></video> ``` PDF 文件预览示例: ```html <!-- 在 HTML 中嵌入 PDF 文件预览 --> <embed src="http://example.com/sample.pdf" type="application/pdf" /> ``` 以上是常见文件在线预览实现方法和示例代码,具体实现还需根据具体需求和技术栈来选择最适合的方案。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值