文档章节

后台通过返回数据流的方式让你下载文件,怎么搞?

学霸猫
 学霸猫
发布于 01/19 10:44
字数 291
阅读 30
收藏 0

后台可以通过提供下载链接的方式让前端完成下载功能,这个多简单多粗暴多招人喜欢,只要location.href=`${url}`或者window.open(`${url}`)就结束了。

但是后台也会通过另一种方式提供下载,即前端请求接口返回二进制数据的方式。这种方式个人认为好处就是可以在网络延时比较大的时候,方便加个loading吧,谁知道呢。

那么,第二种方式前端要如何搞定呢,主要是使用Blob的方式,这个地方没啥太复杂的,直接上代码了

const download = (res, name) => {
  const blob = new Blob([res])
  if (window.navigator && window.navigator.msSaveOrOpenBlob) {
    window.navigator.msSaveOrOpenBlob(blob, name);
  } else {
    const url = window.URL.createObjectURL(blob);
    const a = document.createElement("a");
    a.href = url;
    a.setAttribute("download", name);
    document.body.appendChild(a);
    a.click();
    a.remove();
    window.URL.revokeObjectURL(url);
  }
};

 

© 著作权归作者所有

学霸猫
粉丝 5
博文 104
码字总数 59748
作品 0
深圳
程序员
私信 提问
加载中

评论(0)

为 PHP 开发人员介绍 Node.JS #4 : 数据流

在搞过了一票Web App之后,你就会意识到这些玩意不过是将一堆字节从一个电脑传送到另一个而已。你甚至不需要明白背后的原理就能写出金闪闪的牛X应用。但是如果你想释放你服务器中潜藏的终极力...

傅小黑
2013/01/30
1.2K
2
Java爬虫实战—爬取某网盘技术类PDF电子书

背景 背景是这样的:前2天在网上搜技术类电子书,结果发现CSDN某博客更新了大量技术类PDF电子书(链接在这里程序员成长思路-电子书),考虑到他这个应该是为网盘导流,文件有可能是临时存储的...

测试开发栈
2018/06/28
0
0
超轻量级RPC框架--JS2Java RPC

JS2Java RPC 是一个基于flash、java、js架构设计的超轻量级RPC框架。 特点: 1、JS2Java RPC:能够在javascript的web浏览器环境中指定java类,获取该类实例的属性,调用该实例的方法 2、支持...

匿名
2011/08/20
1.7K
0
作为高级Java,你应该了解的Linux知识 - 知乎

作为一个javaer,我以前写过很多关于Linux的文章。但经过多年的观察,发现其实对于大部分人,有些东西压根就用不着。用的最多的,就是到线上排查个问题而已,这让人很是苦恼。那么,我们就将...

编程教室
2019/11/05
0
0
想学Node.js,stream先有必要搞清楚

什么是stream 定义 流的英文,流(Stream)是一个抽象的数据接口,中很多对象都实现了流,流是对象的一个实例,总之它是会冒数据(以 为单位),或者能够吸收数据的东西,它的本质就是让数据...

大西轰已在服务区
2019/07/17
0
0

没有更多内容

加载失败,请刷新页面

加载更多

0228 我的潘多拉

我的潘多拉 从一个故事说起。<br />从前,有个Java程序员非常喜欢写程序,喜欢研究源码,读英文文档。但是它在一家小公司里工作,公司的技术栈很陈旧。<br /> <br />单个系统代码中含有很多的...

李福春carter
今天
18
0
OSChina 周六乱弹 —— 屁会不会传染病毒

Osc乱弹歌单(2020)请戳(这里) 【今日歌曲】 @薛定谔的兄弟 :分享洛神有语创建的歌单「我喜欢的音乐」: 《ハレハレヤ(朗朗晴天)》- 猫瑾 手机党少年们想听歌,请使劲儿戳(这里) @空格...

小小编辑
今天
63
1
两个值得注意的问题

对成员变量的操作只能放在方法中,方法可以对成员变量和方法体中自己定义的局部 变量进行操作.在定义类的成员变量时可以同时赋予初值,如 class A { int a=12; float b=12.56f; } 但是不可以这...

咔啡
今天
27
0
第三章 分布式服务框架的选择

1.大项目工程且多人维护的弊端 (1)项目团队协同成本高,业务响应越来越慢 (2)应用复杂度已超出人的认知负载(向杂乱的电线一样) (3)错误难于隔离(一个模块出错,整个系统挂掉) (4...

zxx901221
今天
68
0
eclipse 上传jar到远程仓库

使用maven的项目中,有时需要把本地的项目打成jar包上传到mevan仓库。 操作如下: 前提:pom文件中配置好远程库的地址,否则会报错 一、将maven 中的settings文件配置好用户名和密码,如下:...

文文1
昨天
63
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部