之前在网上看到一个博主写的前端通用的下载文件的方法,个人觉得很实用,所以mark一下,方便以后查阅

源文地址(源文还有上传/下载excel文件方法)

因为项目要求要兼容IE浏览器,所以完善了一下之前博主的方法

  • IE 浏览器:使用微软自带的msSaveBlob 方法,a标签的download属性不支持IE
  • 谷歌浏览器(只测试过谷歌):创建a标签 ,添加download属性,模拟鼠标点击事件

  

//这里res.data是返回的blob对象
var blob = new Blob([res.data.fileData], {type: 'application/json;charset=utf-8'}); //application/vnd.openxmlformats-officedocument.wordprocessingml.document这里表示doc类型
var href = window.URL.createObjectURL(blob); //创建下载的链接
if (window.navigator.msSaveBlob) {
try {
window.navigator.msSaveBlob(blob, 'model.json')
} catch (e) {
console.log(e);
}
} else {
// 谷歌浏览器 创建a标签 添加download属性下载
var downloadElement = document.createElement('a');
downloadElement.href = href;
downloadElement.target = '_blank';
downloadElement.download = 'model.json'; //下载后文件名
document.body.appendChild(downloadElement);
downloadElement.click(); //点击下载
document.body.removeChild(downloadElement); //下载完成移除元素
window.URL.revokeObjectURL(href); //释放掉blob对象
}

最新文章

  1. asp.net5 Area的处理
  2. C# Susan边缘检测(Susan Edge Detection)
  3. 2015年免费的25款 WordPress 网站模板
  4. .NET技术在中国为什么老被人嫌弃
  5. 《App研发录》知识点汇总
  6. MAC OS安装wget
  7. rails第一次做项目
  8. ruby定时脚本
  9. JAVA Hibernate别名排序问题
  10. jquery settimeout使用
  11. C# 启动EXE文件及带启动参数EXE
  12. semver语义化版本号
  13. 用auto_ptr类模板帮助动态内存管理
  14. jQuery实现页面关键字搜索
  15. 模块:time,random,os,sys
  16. 【TCP网络协议问题】
  17. echarts-饼状图默认选中高亮
  18. OSPFV3综合实验 (第三组)
  19. Missing initializer in const declaration
  20. PHP 日期时间类 Carbon 的常见用法

热门文章

  1. Spark 宽窄依赖和stage的划分
  2. 使用Cloudera Manager部署Spark服务
  3. Java精通并发-轻量级锁与重量级锁的变化深入详解
  4. No converter found capable of converting from type [java.lang.String] to type [java.util.Map<java.lang.String, java.lang.String>]
  5. 用 Python 加密文件
  6. ASCII、Unicode、UTF-8字符集编码
  7. APP弱网测试工具(QNET)
  8. (尚015)Vue过滤器(对显示的数据进行格式化)
  9. Angular动态组件
  10. 在Matlab中的plot