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会直接预览)无法判断接口是否返回成功

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

  1. js下载文件常用的两种方式

    1.后端直接返回文件服务器地址,前端创建a标签模拟 export function downloadFileUrl (url, fileName) { const elink = document.c ...

  2. 关于PHP下载文件功能中header()书写方式

    一.下载所用header头 header ( "Cache-Control: max-age=0" ); header ( "Content-Description: F ...

  3. springboot ajax下载文件功能封装

    通过js ajax下载文件功能封装 function exportExcel(formId, url) {try {var queryForm = $("#" + formId); ...

  4. android ftp同步程序,ftp同步 安卓,安卓手机ftp上传下载文件功能同步视频照片

    手机拍照越来方便,手机里的照片也越积越多,手机运行缓慢,本文利用安卓的每步FTP服务APP来自动实现手机视频照片的同步,释放手机被占用的存储空间.在机顶盒上运行每步FTP服务,机顶盒USB口连接U盘做 ...

  5. js ajax上传文件功能

    js ajax上传文件功能 ajax请求 php接收文件(yii框架) ajax请求 <form enctype="multipart/form-data"><i ...

  6. [js] axios为什么可以使用对象和函数两种方式调用?是如何实现的?

    [js] axios为什么可以使用对象和函数两种方式调用?是如何实现的? axios 源码 初始化 看源码第一步,先看package.json.一般都会申明 main 主入口文件. // packag ...

  7. 两台Linux主机之间文件传输的几种方式

    Linux文件传输的五种方式 FTP : FTP是文件服务器,可实现文件的上传下载,存储等功能,但本文不打算介绍ftp的使用. scp: scp能够将不同主机的文件进行相互传输,使用简单方便. rz ...

  8. sass文件编译的三种方式【舒】

    [舒:]sass文件编译的三种方式 方式一: 1.webstorm打开evtGulp项目或者mcake-activity项目 2.中,开启gulp->default/develop,启动watc ...

  9. linux两种方式改变文件权限,Linux更改文件权限的两种方式

    今天小编要跟大家分享一篇关于Linux更改文件权限的方式,喜欢Linux的小伙伴来看一看吧. 我们知道·Linux系统最主要的特点之一就是--Linux系统是多用户.多任务的操作系统. 何为多用户?就 ...

最新文章

  1. redis持久化方案
  2. [SQL]死锁处理语句
  3. 了解AdvStringGrid
  4. 事件溯源|日志记录-一个基础的微服务模式
  5. catch句子_「实用英文」知道 catch on 是什么意思吗?catch 精选短语合集
  6. vbs调用WebService -- 使用xmlhttp
  7. ClassNotFoundException: javax.validation.ValidatorFactory
  8. requestparam注解_源码剖析@ApiImplicitParam对@RequestParam的required属性的侵入性
  9. 浅谈 Attention 机制的理解
  10. select top 1 oracle,在ORACLE中SELECT TOP N的实现方法
  11. 济南北大青鸟2013春季百人就业工程计划
  12. 课程作业练习 K均值聚类 python实现(最小误差平方和准则)
  13. 二、ArcGIS中shp裁剪dem
  14. WinPE制作相关知识
  15. 运行Shell脚本的两种方法
  16. 清除流氓软件的第一利器(IceSword)
  17. 这可能是知乎中,最好的项目管理书单!
  18. 【TIC6657 DSP学习笔记】02 RTSC平台配置组件创建
  19. 漫游费概念模糊,运营商自食其果
  20. 想跟应届毕业生聊聊的三个话题

热门文章

  1. 2021卫生类副高考试成绩什么时候可以查询,【官方通知】2021年卫生高级职称考试时间确定!...
  2. libvirt php,libvirt虚拟化开发简介
  3. 如何使用51单片机自制音乐盒
  4. 英语单词词性顺口溜_口诀1 英语的词类
  5. pagehelper升级出现ClassCastException
  6. 多索引、多类型查询:
  7. python爬取颤音_Python难学吗,本人数学和英语都很差,想学,都是兴趣爱好
  8. 发送的邮件总是被退回之SPF
  9. 教你一招从谷歌商店下载应用?
  10. 强大算力哪里寻?华为鲲鹏920闪耀乌镇