首页 > 其他分享 >文件下载

文件下载

时间:2023-06-07 17:55:06浏览次数:31  
标签:文件 tempLink res fileName window type 下载

方式一、

  const url = 下载地址
  window.location.href = url

方式二、

/**
 * @method excel下载
 * @param  {String} type 需要下载的文件类型
 * @param  {Object} res  文件流
 * @param  {String} name 文件名
 * @return {NULL} 
*/
function createExcel(type,res, name) {
const blob = new Blob([data], {
    // type类型后端返回来的数据中会有,根据自己实际进行修改
    // 表格下载为 application/xlsx,压缩包为 application/zip等,
    type: type
  })
  let fileName = name;
  // 允许用户在客户端上保存文件
  if (window.navigator.msSaveOrOpenBlob) {
    navigator.msSaveBlob(blob, fileName);
  } else {
      var blobURL = window.URL.createObjectURL(blob)
    // 创建隐藏<a>标签进行下载
    const tempLink = document.createElement('a')
    tempLink.style.display = 'none'
    tempLink.href = blobURL
    tempLink.setAttribute('download', fileName)
    if (typeof tempLink.download === 'undefined') {
      tempLink.setAttribute('target', '_blank')
    }
    document.body.appendChild(tempLink)
    tempLink.click()
    document.body.removeChild(tempLink)// 移除dom元素
    window.URL.revokeObjectURL(blobURL)// 释放bolb内存
  }
}

文件名获取

let fileName  = ""
if (res.headers["content-disposition"].indexOf("filename=")) {
          if (
            res.headers["content-disposition"].split("=")[1].indexOf("%") > -1
          ) {
            fileName = decodeURI(
              res.headers["content-disposition"].split("=")[1]
            );
          } else {
            fileName = res.headers["content-disposition"].split("=")[1];
          }
        }
     createExcel(res.data, fileName);

Excel Type类型:

  • application/vnd.openxmlformats-officedocument.spreadsheetml.sheet

  • application/vnd.ms-excel

注意点:

使用方法二,需要在请求头或者请求接口上加:responseType:'blob',

标签:文件,tempLink,res,fileName,window,type,下载
From: https://www.cnblogs.com/0520euv/p/17464116.html

相关文章

  • python线性脚本生成基本eml邮件,压缩文件,接口灌数据
    1importdatetime,zipfile,tarfile,logging,os,string,random,ipaddress,uuid,pytz,py7zr2importio,socket3fromemail.mime.textimportMIMEText4fromemail.mime.multipartimportMIMEMultipart5fromemail.mime.applicationimportMIMEA......
  • VS Code 同时打开多个项目文件以及同时运行多个项目
     使用需求:在开发前端项目时,我们经常会打开多个项目进行参考或者需要代码调试,记录一下VSCode中的使用方法。-------------------------------------------------------------------如何打开多个终端,并执行运行命令呢? 1.打开“终端”(工具栏:“查看”->“终端”)2.点击右上角的......
  • 【B站视频下载教程】杰伦开演唱会了!教你下载周杰伦嘉年华B站录播视频
    本期教程教大家如何用学无止下载器,下载哔哩哔哩B站上面的视频这里以2023年5月5日周杰伦嘉年华香港站B站录播视频为例,教大家下载B站视频。一:电脑网页打开哔哩哔哩B站官网,从网页复制想要下载的视频网址链接二:把复制后的课程链接粘贴至学无止下载器中,即可一键下载三:下载好......
  • flutter 的 in_app_web_view实现下载功能
    flutter与前端交互,利用in_app_web_view实现下载功能:首先下载库,终端输入flutterpubaddflutter_inappwebview之后导出import'package:flutter_inappwebview/flutter_inappwebview.dart';即可使用。创建in_app_web_view:InAppWebView(initialOptions:InA......
  • node实现文件上传到七牛云
    使用七牛云提供的Node.jsSDK(https://developer.qiniu.com/kodo/1289/nodejs)实现文件上传服务端:1、安装JDKnpm/cnpminstallqiniuoryarnaddqiniu2、导出七牛云配置文件的Token//七牛云配置文件constqiniu=require('qiniu');//创建上传凭证(accessKey和s......
  • SQL Server 补丁理解及安装 内附完整版下载地址及sp1/2/3补丁
    启动安装程序下载sqlserver2014,双击startup.exe进行安装 系统配置检查器 使用系统配置检查器,看系统是否符合安装sqlserver2014的所有要求 开始安装然后点击安装,全新sqlserver独立安装或向现有安装添加功能 安装规则然后就是使用默认的设置,点开详细信息,可以看到安......
  • LeetCode 388.文件的最长绝对路径
    题目链接思路针对文件路径的特征,一个文件中一定包含.分隔符,以此为依据可以判定当前字符串是否是一个文件,文件系统是一个树形结构的角度来看的话,题中给定的字符串实际上是以一个树形结构前序遍历的序列,连续的\t表示出了当前的深度,而相邻的节点之间以\n进行分割。假设当前的路径为x/......
  • 文件读取顺序差异
    Linux(Ubuntu):Windows:......
  • win10 共享文件夹给本地打印机
    在“启用活关闭Windows功能”里,找到“SMB1.0/CIFS文件共享支持”,勾选开启;建议在系统属性里,把计算机名设置成简单的字母,比如hi,然后重启电脑;在  防火墙和网络保护→允许应用通过防火墙,里面找到“文件与打印机共享”,后面两个复选框全部勾选;在任意磁盘新建一个文件夹,我这新建......
  • 实验五 文件应用编程
    task6withopen('data6.csv','r',encoding='gbk')asf:data=f.readlines()data.remove('原始数据\n')data0=[]foriindata:ifi[-1]=='\n':i=i[:-1]data0.append(float(i))print('原始......