<script>// 获取文件名function fileNameFromHeader (disposition) {var result = null;if (disposition && /filename=.*/ig.test(disposition)) {result = disposition.match(/filename=.*/ig);return decodeURI(result[0].split('=')[1]);}return null;}
function downloads() {var url = '/down_excel';var xhr = new XMLHttpRequest();xhr.open('GET', url, true);        // 也可以使用POST方式,根据接口xhr.responseType = "blob";    // 返回类型blob// 定义请求完成的处理函数,请求前也可以增加加载框/禁用下载按钮逻辑xhr.onload = function () {// 请求完成if (this.status === 200) {// 返回200var blob = this.responsevar filenames = fileNameFromHeader(xhr.getResponseHeader('Content-Disposition'));var reader = new FileReader();reader.readAsDataURL(blob);    // 转换为base64,可以直接放入a表情hrefreader.onload = function (e) {// 转换完成,创建一个a标签用于下载var a = document.createElement('a');a.download = filenames.slice(1,filenames.length-1); //'data.xlsx';a.href = e.target.result;$("body").append(a);    // 修复firefox中无法触发clicka.click();$(a).remove();}}};// 发送ajax请求xhr.send()}
</script>

注:此代码只是个人根据当时的环境满足了当时的需求,记录下来用做后续参考!如有问题,请检查软硬件环境是否一致,由于时间精力有限,大部分未做详细环境描述。

JavaScript 下载文件并保持原文件名称相关推荐

  1. 偷偷自动拷贝U盘文件(按照原文件夹格式保存)实用

    以前在学校上电脑课的时候总是馋老师U盘的身子,心想要是能把他里面的的课件拷贝下来就好了.不仅看得清楚还能省下拍PPT再抄到书上的麻烦,于是乎他来了. 这个拷贝软件打包以后可以完全静谧拷贝,不需要人工干 ...

  2. Windows压缩指定文件并删除原文件内容bat脚本

    环境 E盘scan文件夹下有IT.HT.SCM.经管等部门文件夹,各部门文件夹下存放着各自的扫描文件(PDF).表格等内容,因是临时存放,所以需设定定时删除任务 需求 结合windows任务计划,每天 ...

  3. linux压缩文件不保留原文件

    tar -zcvf 9701.tar.gz 9701* --remove-files --remove-files         在添加文件至归档后删除它们 //使用该参数后,将在文件加入压缩文件后 ...

  4. linux命令解压文件到指定目录并覆盖,linux当前目录下解压zip文件并覆盖原文件如何实现?...

    特意给你在centos上测试了下:unzip -u -o zuidaima.zip Usage: unzip [-Z] [-opts[modifiers]] file[.zip] [list] [-x ...

  5. python对文件的处理_python文件处理fileinput使用方法详解

    这篇文章主要介绍了python文件处理fileinput使用方法详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 一.介绍 fileinput模块 ...

  6. 将pyx文件编译成pyd文件(很多坑,已解决)

    项目场景: Faster R-CNN项目,将pyx文件编译成pyd文件(很多坑,请注意) 项目环境 python 3.6 – conda的虚拟环境 TensorFlow 1.15.0 win 10 问 ...

  7. Allegro PCB Design GXL (legacy) 将brd文件另存为低版本文件

    Allegro PCB Design GXL (legacy) version 16.6-2015 参考:https://blog.csdn.net/qq_29761395/article/detai ...

  8. python 复制某文件到另一个文件夹

    你可以使用 Python 的 shutil 库中的 copy 函数来复制文件. 示例代码: import shutil# 复制文件 shutil.copy("原文件路径", &qu ...

  9. python3.7保存文件_Python3.7之文件操作

    一.基本操作 基于字符的读取(r),写入(w)与追加(a) 1.mode='r' f = open(file='文件读取.txt', mode='r') print(f.read()) 2.mode= ...

  10. javascript下载文件几种方式,接收后台返回流下载或直接下载文件

    目录 1 javascript下载文件7中方式 1.1 window.location.href下载 1.2 window.location下载 1.3 iframe下载 1.4 form表单的形式下 ...

最新文章

  1. uniapp同步获取用户信息_微信小程序云开发教程微信小程序的API入门获取用户身份信息系列API...
  2. git---gui使用
  3. VMware ESX Server 4(vSpere)测试记录
  4. linux下eclipse cdt引用函数库设置问题
  5. Linux opencv安装与编译
  6. 检索数据_14_返回不重复的记录
  7. 为什么 0.1 + 0.2 = 0.300000004
  8. linux学习查看系统资源和磁盘分区
  9. mybatis xml sql
  10. 免费语音识别_免费 语音识别_免费语音识别api - 云+社区 - 腾讯云
  11. Javaworkers团队第五周项目总结
  12. 坐标系转换--筛选高于RMS的强源-------ska暑期训练
  13. Linux lpadmin 命令 增加usb打印机
  14. C++多线程1——pthread
  15. java创建exchange邮箱_创建Exchange邮箱用户
  16. C语言从入门到入土---初识C语言
  17. 威联通使用Typecho搭建博客
  18. div设置为可获取焦点并且判断是否已获取焦点的方法
  19. Xcode13 新建项目 Products 目录显示方法
  20. 比起结果过程更加重要

热门文章

  1. Hadoop学习之hdfs集群搭建详解
  2. html实现登录界面
  3. 尚硅谷nginx学习笔记
  4. 预付费电能表远传抄表系统
  5. 创建Spring项目没有Spring Config文件怎么办
  6. 关于E-Prime 2.0 无法呈现音频的一种解决方案
  7. 10款开源网上教学课程管理系统
  8. Matlab: 汉字转拼音函数包
  9. python31001python3_Python310第二个alpha版本最新特性值得关注Python 3100a0 文档
  10. v8声卡怎么录制唱歌_直播声卡怎么连接V8 V8声卡连接方法教程