当前位置: 首页 > article >正文

vue 下载二进制文件

文章目录

    • 概要
    • 技术细节

概要

vue 下载后端返回的二进制文件流
在这里插入图片描述

技术细节

import axios from "axios";
const baseUrl = process.env.VUE_APP_BASE_API;
//downLoadPdf("/pdf/download?pdfName=" + res + '.pdf', res);
export function downLoadPdf(str, fileName) {
  var url = baseUrl + str;
  axios({
    method: "get",
    url: url,
    responseType: "blob",//一般都是blob
    headers: { isToken: false },//传不传token取决于后端要求
    // headers: { Authorization: "Bearer " + getToken() },
  }).then((res) => {
    // // 创建blob对象,解析流数据
    //基本都是res.data 
    //type类型pdf(application/pdf)
    //xlsx(application/vnd.openxmlformats-officedocument.spreadsheetml.sheet)
    //zip(application/zip)
    const blob = new Blob([res.data], {
      type: "application/pdf",
    });
    //1.浏览器打开-预览
    const url = window.URL.createObjectURL(blob);
    window.open(url);
    //使用a标签下载
    const a = document.createElement("a");
    // 兼容webkix浏览器,处理webkit浏览器中href自动添加blob前缀,默认在浏览器打开而不是下载
    const URL = window.URL || window.webkitURL;
    // 根据解析后的blob对象创建URL 对象
    const herf = URL.createObjectURL(blob);
    // 下载链接
    a.href = herf;
    // 下载文件名,如果后端没有返回,可以自己写a.download = '文件.pdf'
    a.download = fileName;
    document.body.appendChild(a);
    a.click();
    document.body.removeChild(a);
    // 在内存中移除URL 对象
    window.URL.revokeObjectURL(herf);
  });
}

http://www.kler.cn/a/228629.html

相关文章:

  • Mac下安装ADB环境的三种方式
  • React 中hooks之useReducer使用场景和方法总结
  • Deformable Detr回顾
  • 什么宠物最好养?
  • 统信V20 1070e X86系统编译安装mysql-5.7.44版本以及主从构建
  • 口令攻击和钓鱼攻击
  • 可控概率抽奖算法
  • mac下载工具:JDownloader 2 for Mac 中文版
  • Backtrader 文档学习-Indicators- TA-Lib
  • openGauss学习笔记-214 openGauss 性能调优-确定性能调优范围
  • 多输入多输出 | Matlab实现PSO-LSTM粒子群优化长短期记忆神经网络多输入多输出预测
  • BUU UPLOAD COURSE 1
  • PHP框架详解 - symfony框架
  • 备战蓝桥杯---数据结构与STL应用(进阶2)
  • 【Redis】实现缓存及相关问题
  • 网络安全-端口扫描和服务识别的几种方式
  • WPF DataTemplate内重写BorderBrush,VisualBrush内数据源绑定提示绑定失败
  • 数据挖掘实战-基于决策树算法构建北京市空气质量预测模型
  • 前端excel带样式导出 exceljs 插件的使用
  • C语言动态库全面深入剖析
  • [office] 在Excel2010中设定某些单元格数据不参与排序的方法介绍 #其他#知识分享#笔记
  • golang 创建unix socket http服务端
  • 如何使用linux inotifywait inotifywatch对文件增删修改进行监测和实现数据同步
  • 最短编辑距离问题与动态规划----LeetCode 72.编辑距离
  • Linux底层基础知识
  • 回归预测 | Matlab实现WOA-CNN-LSTM-Attention鲸鱼算法优化卷积长短期记忆网络注意力多变量回归预测(SE注意力机制)