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

这篇具有很好参考价值的文章主要介绍了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 下载文章来源地址https://www.toymoban.com/news/detail-509887.html

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

到了这里,关于1分钟了解js如何实现下载文件功能的4种方式的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 前端实现文件下载功能——文件流

    前端下载文件一般使用的是blob 核心的步骤是获取后端响应的文件流,用blob创建一个临时的URL,然后创建一个隐藏的a标签,实现下载需求。 那就先上代码 如果后端响应的数据是一个二进制数据,那我们就得这是响应类型是blob,否则浏览器会默认按照json解析 至于后端如何向

    2024年02月11日
    浏览(38)
  • 前端实现下载文件的各种方式

    前端涉及到的文件下载还是很多应用场景的,那么前端文件下载有多少种方式呢?每种方式有什么优缺点呢?下面就来一一介绍。 通过 a 标签的 download 属性来实现文件下载,这种方式是最简单的,也是我们比较常用的方式,先来看示例代码: 就上面的这个示例,我们点击下

    2024年02月16日
    浏览(40)
  • ajax实现下载文件功能

    最近在做下载功能,因为后端需要生成PDF并上传到云服务器,只返回文件的URL,所以百度了很多找到了一个简单的方法. Blob(Binary Large Object)表示二进制类型的大对象。在数据库管理系统中,将二进制数据存储为一个单一个体的集合。Blob 通常是影像、声音或多媒体文件。在 Ja

    2024年02月15日
    浏览(29)
  • axios下载csv文件下载-功能实现

    须将axios 配置中的 responseType 设置为 arraybuffer  

    2024年02月05日
    浏览(43)
  • Springboot实现文件下载的方式

    2024年04月23日
    浏览(29)
  • 干货分享 | 一分钟带你了解TSMaster小程序编辑代码智能提示功能

    本文给大家带来TSMaster小程序编辑的新功能,其中主要包含:代码编辑智能提示功能、可用外部代码编辑器编辑小程序代码并同步。 本文: C小程序、Python小程序、代码智能提示、外部代码编辑器、Visual Studio 目录/Catalog ●  TSMaster的代码编辑器 ●  代码智能提示功能

    2024年02月05日
    浏览(38)
  • JS实现Blob文件流下载

    在 JavaScript 中,可以使用浏览器提供的 Blob 对象和 URL.createObjectURL() 方法来实现文件流下载。 下面是一个示例代码,可以帮助了解如何在 JavaScript 中实现文件流下载: 在这个示例中,我们定义了一个 downloadFile() 函数,这个函数接受三个参数: data 、 filename 和 type 。其中,

    2024年02月15日
    浏览(43)
  • SpringBoot实现文件下载的多种方式

    1.1 下载文件

    2024年02月06日
    浏览(31)
  • flask项目中 实现下载文件功能

    file_path 变量中提供要下载的文件的路径。 当访问 download 路由时,会触发 download_file 函数,该函数使用 send_file 方法将文件发送到客户端以进行下载 as_attachment=True 表示将文件作为附件下载,而不是在浏览器中直接打开。

    2024年02月07日
    浏览(37)
  • 【Java实战】Feign调用文件下载服务接口实现文件下载功能

    最近需要实现Feign调用服务提供者的文件下载接口,进行文件下载功能,这里对功能的实现做一个简单的记录 通过调用服务提供者的文件下载接口,将文件传输的流数据通过 feign.Response 来接收,服务消费者再将数据转化 首先,在项目中引入Feign的依赖。你可以使用Maven进行管

    2024年02月12日
    浏览(53)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包