1分钟快速了解js实现下载文件功能的4种方式

 更新时间:2024年03月02日 10:01:05   作者:渣男语录  
在前端开发中,我们经常需要实现文件下载功能,例如下载用户上传的图片、用户生成的文件等,这篇文章主要给大家介绍了关于如何通过1分钟快速了解js实现下载文件功能的4种方式,需要的朋友可以参考下

1、a标签下载 —可以直接下载txt、png、pdf、exe、xlsx等类型文件

downFile = (url) => {
    const a = document.createElement('a');
    a.style.display = 'none';
    a.download = 'xx';
    a.href = url;
    document.body.appendChild(a);
    a.click(); 
    document.body.removeChild(a);
    /*
	  * download: HTML5新增的属性
	  * url: 属性的地址必须是非跨域的地址
	   */
  };

2、new Blob 文件流下载

	//fileName : 设置下载的文件名称
	//filestream: 返回的文件流
	const blob = new Blob([filestream], {type: 'application/vnd.ms-excel'});
	const a = document.createElement('a');
	const href = window.URL.createObjectURL(blob); // 创建下载连接
	a.href = href;
	a.download = decodeURI(fileName );
	document.body.appendChild(a);
	a.click();
	document.body.removeChild(a); // 下载完移除元素
	window.URL.revokeObjectURL(href); // 释放掉blob对象

3、window.open下载

	window.open(url, '_self');

缺点:
    会出现URL长度限制问题
    需要注意url编码问题
    无法获取下载进度
    无法在header中携带token做鉴权操作
    无法判断接口是否成功
    无法直接下载浏览器可直接预览的文件类型(txt、png、pdf会直接预览)

4、location.href 下载

	window.location.href = url

缺点:
    会出现URL长度限制问题
    需要注意url编码问题
    无法获取下载进度
    无法在header中携带token做鉴权操作
    无法直接下载浏览器可直接预览的文件类型(txt、png、pdf会直接预览)
    无法判断接口是否返回成功

总结

到此这篇关于js实现下载文件功能的4种方式的文章就介绍到这了,更多相关js下载文件功能内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 微信小程序实现计算器案例

    微信小程序实现计算器案例

    这篇文章主要为大家详细介绍了微信小程序实现计算器案例,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-07-07
  • TypeScript中declare关键字的具体使用

    TypeScript中declare关键字的具体使用

    declare关键字用来告诉编译器,某个类型是存在的,可以在当前文件中使用,本文主要介绍了TypeScript中declare关键字的具体使用,感兴趣的可以了解一下
    2023-10-10
  • JavaScript监控埋点的实现与详细用法

    JavaScript监控埋点的实现与详细用法

    埋点(Event Tracking)是用户行为监控的一种技术手段,通常用于收集用户在网站或应用中的操作数据,例如点击、页面浏览、滚动等,本文给大家介绍了JavaScript监控埋点的实现与详细用法,需要的朋友可以参考下
    2024-10-10
  • JS+canvas五子棋人机对战实现步骤详解

    JS+canvas五子棋人机对战实现步骤详解

    这篇文章主要介绍了JS+canvas五子棋人机对战实现步骤详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-06-06
  • JS中Iframe之间传值及子页面与父页面应用

    JS中Iframe之间传值及子页面与父页面应用

    用iframe做系统框架,相信很多朋友都有这样的经历吧,接下来将为你详细介绍下JS中Iframe之间传值应用,感兴趣的你可以参考下哈,希望可以帮助到你
    2013-03-03
  • window.open 以post方式传递参数示例代码

    window.open 以post方式传递参数示例代码

    这篇文章主要介绍了window.open以post方式传递参数的方法,需要的朋友可以参考下
    2014-02-02
  • JavaScript 排他思想的具体实现

    JavaScript 排他思想的具体实现

    排他思想的算法就是排除掉其他的,本文主要介绍了JavaScript 排他思想的实现,以及介绍了两个示例,感兴趣的可以了解一下
    2021-11-11
  • JavaScript无操作后屏保功能的实现方法

    JavaScript无操作后屏保功能的实现方法

    今天组里的同事要写一个屏保的效果,要求鼠标无操作N秒后进入屏幕保护,滑动鼠标的时候取消屏幕保护。我真是难倒了,纠结了半天,搞定了,下面给大家分享实现代码
    2017-07-07
  • JavaScript中标识符提升问题

    JavaScript中标识符提升问题

    标识符指的是javascript中定义的符号,标识符可以由任意顺序的大小写字母、数字、下划线和美元符号组成,但标识符不能以数字开头,也不能是javascript中的保留关键字。并且要注意,javascript是严格区分大小写的。
    2015-06-06
  • JavaScript实现微信红包算法及问题解决方法

    JavaScript实现微信红包算法及问题解决方法

    这篇文章主要介绍了JavaScript实现微信红包算法及遇到的问题解决方法,需要的朋友可以参考下
    2018-04-04

最新评论