背景:element-ui写的一个表格,由于数据量太多而目前的筛选功能不完善,新增了导出数据的功能,一键将所有数据下载为一个excel,让运营人员去excel中搜索。导出数据的功能是后端小哥哥做哒,前端只负责下载。
此时,后台小哥哥抛给你一个下载的url

可以用 window.location.href = url;
来下载,但是不够优美(不能根据需求重命名

一般的做法是获取文件 Blob,然后下载重命名,简单整理了一下

   // 下载方法downloadExcel(url, filename) {this.getBlob(url).then((blob) => {this.saveAs(blob, filename);});},/*** 获取 blob* @param  {String} url 目标文件地址* @return {Promise}*/getBlob(url) {return new Promise((resolve) => {const xhr = new XMLHttpRequest();xhr.open('GET', url, true);xhr.responseType = 'blob';xhr.onload = () => {if (xhr.status === 200) {resolve(xhr.response);}};xhr.send();});},/*** 保存* @param  {Blob} blob* @param  {String} filename 想要保存的文件名称*/saveAs(blob, filename) {if (window.navigator.msSaveOrOpenBlob) {navigator.msSaveBlob(blob, filename);} else {const link = document.createElement('a');const body = document.querySelector('body');link.href = window.URL.createObjectURL(blob);link.download = filename;// fix Firefoxlink.style.display = 'none';body.appendChild(link);link.click();body.removeChild(link);window.URL.revokeObjectURL(link.href);}},

js实现文件下载并重命名相关推荐

  1. 纯js实现文件下载并重命名功能

    /*** 获取 blob* @param {String} url 目标文件地址* @return {cb} */ function getBlob(url,cb) {var xhr = new XM ...

  2. JavaScript 实现文件下载并重命名

    JavaScript 实现文件下载并重命名 第一种是HTML官网中的方法 <a href="/images/liang.jpg" download="文件名称&qu ...

  3. php文件夹重命名,php文件下载并重命名

    1.下载本地文件 $file_url = "./本地路径" $out_filename = '下载后自动保存的名字'; if(!file_exists($file_url)) { ...

  4. php文件下载并重命名

    1.下载本地文件 $file_url = "./本地路径"  $out_filename = '下载后自动保存的名字';  if(!file_exists($file_url)) ...

  5. php设置下载名,php文件下载并重命名

    1.下载本地文件 $file_url = "./本地路径" $out_filename = '下载后自动保存的名字'; if(!file_exists($file_url)) { ...

  6. js多文件下载和多文件分文件夹打包下载并重命名

    js多文件下载并重命名 let list=['...'] function downloadFile(list,index){//下载文件方法if(index>=list.length){ret ...

  7. SpringBoot下载网络文件并重命名,比如:excel

    文件下载,通过<a href="url">也是可以的,但是这样直接下载,一般文件名就是服务器端的没有任何意义的文件名. 今天自己用到了另外一种,先说需求:1.文件服务器 ...

  8. vue下载文件并重命名

    vue的项目,需要做一个文件上传下载的功能.上传是OK的,然鹅因为上传到minio的时候,使用了随机数命名,导致文件名称就变成了一大串字符.被客户驳回来了.那好吧,就加一个重命名功能好了. 不过这个项 ...

  9. scp 保留文件属组_scp 对拷文件夹 和 文件夹下的所有文件 对拷文件并重命名

    对拷文件夹 (包括文件夹本身) scp -r   /home/wwwroot/www/charts/util root@192.168.1.65:/home/wwwroot/limesurvey_ba ...

最新文章

  1. Chrome v28 会在pwd目录下生成libpeerconnection.log文件
  2. linux系统取消自检,[转载]取消Linux启动自检
  3. curl命令java_让 Bug 无处藏身,Java 线上问题排查思路、常用工具
  4. 洛谷P3845-球赛【离散化,贪心】
  5. vue.js 源代码学习笔记 ----- decoder
  6. GoldenGate Director安装
  7. E-day0003:generate
  8. LCA的 Trajan 算法
  9. M1 Mac无法读取NTFS格式硬盘里的内容应该怎样操作?
  10. 【有利可图网】PS实战教程55:打破次元壁,将照片从三次元跨越到二次元
  11. e语言截图软件怎么保存在c盘,电脑截图文件保存在哪_电脑截图保存在哪里
  12. 视频伪原创工具 剪辑过的视频md5会改变吗
  13. 福州古刹梅花盛开 古装赏梅成“娇点”
  14. 题目0155-特异性双端队列
  15. wireshark显示没有找到接口且当cmd界面输入net start npf显示服务名无效解决办法
  16. TCP/IP连接释放
  17. 简述CPU,内存,硬盘,指令之间的关系
  18. stm32的Hal库函数,串口卡死解决方法
  19. -webkit-flex 属性
  20. 简易版“美颜”来了!肝了一夜!用Python做一个高瘦脸神器!

热门文章

  1. 汶川大地震祭(新京报【逝者特刊】卷首语)——转载
  2. Arduino与7段显示器连接
  3. php 获取带宽,php使用网络攻击占用超大带宽的,解决方案[转]
  4. 软件开发可行性分析九个流程的理解
  5. 收集整理的openstack java封装 api的第三方实现的选择
  6. 机房监控系统的功能特点以及工作原理!
  7. 检查计算机电源,台式机电源如何检测 电脑电源检测方法【详解】
  8. 013-Flowcharting实现动态可感知网络拓扑
  9. Java开源中文分词器的使用方法和分词效果对比
  10. 嵌入式 C 语言中三块难啃的硬骨头