当前位置:   article > 正文

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

接口返回文件流怎么去下载

写在前面

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

文件流

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

    

下载

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

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

预览

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

  1. // 预览
  2. ticketFaceView() {
  3. this.$http({
  4. url: "/xxxxxx/xxxxx/xxxxx", // 接口地址
  5. method: "get",
  6. responseType: "blob", // 需要加上
  7. params: { // 接口需要的参数,视个人情况而定
  8. ticketBizId:this.ViewData.ticketId,
  9. packageNo: this.ViewData.superInfoList[0].packageNo,
  10. ticketRange: this.ViewData.superInfoList[0].ticketRange
  11. },
  12. }).then((res) => {
  13. const pdfFile = window.URL.createObjectURL(
  14. new Blob([res.data], { type: "application/pdf" })
  15. );
  16. // 跳转页面预览
  17. window.open(pdfFile);
  18. URL.revokeObjectURL(pdfFile); //释放URL对象
  19. });
  20. },

 写在最后

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

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/你好赵伟/article/detail/207114?site
推荐阅读
相关标签
  

闽ICP备14008679号