目录

  • 问题描述
    • 解决方法
    • 拓展 另一种文件流下载

问题描述

昨天拿到一个需求,就是做成这种下载的模样

后台返回的下载链接长成这样

解决方法

就是一个最普通的方法,创建a标签 ,加上download属性,模拟标签点击 就可以触发下载了
注意:这个是因为直接拿到了请求链接,get请求

 const SERVER_PATH = `${window.location.origin}/ai/aiServer/`;const alink = document.createElement('a');alink.style.display = 'none'alink.href = `${SERVER_PATH}${downloadUrl}`;alink.download = '';document.body.appendChild(alink)alink.click();URL.revokeObjectURL(alink.href) // 释放URL 对象document.body.removeChild(alink)

拓展 另一种文件流下载

通过请求完成接收到的blob 然后再调用a链接下载
这是参考了这个同学的做法,使用的是fetch请求

requestMusicData(item,index){//请求并且传递音乐名称fetch('/music/file?name='+item.innerText,{method: 'get',responseType: 'blob'}).then(res => {     return res.blob();}).then(blob => {let bl = new Blob([blob], {type: "audio/m4a"});let fileName = Date.parse(new Date())+".m4a";var link = document.createElement('a');link.href = window.URL.createObjectURL(blob);link.download = fileName;link.click();window.URL.revokeObjectURL(link.href);})
}

JS-a标签下载文件相关推荐

  1. JS a标签下载文件而不打开文件

    // 下载文件 function downfile(obj) {var url = $(obj).attr("files");//url = "http://10.19. ...

  2. a标签下载文件,js/jq创建a标签导出Excel文件

    a标签下载文件,js/jq 创建a标签导出Excel文件 1.设置dom(html) <button type="button" class="layui-btn ...

  3. js下载文件及前端使用a标签下载文件download属性失效问题

    通常下载通过document.createElement创建虚拟a标签 function downloadFileUrl(val, url, fileName) {if (isVal) return ...

  4. 使用a标签下载文件,浏览器会直接打开解决方案

    使用a标签下载文件,浏览器会直接打开解决方案 背景 一.HTML中的a标签实现点击下载 二.即使使用a标签的download属性,chrome浏览器还是会打开 三.解决方案 解决方案一:使用ajax请 ...

  5. Vue项目:js模拟点击a标签下载文件并重命名,URL文件地址下载方法、请求接口下载文件方法总结。

    URL文件地址下载方法 一.正常情况下,我们都如此下载文件并修改文件名,在a标签上面添加download属性 //文件下载downFile() {if ('download' in document. ...

  6. a标签下载文件header中带上用于鉴权的token

    加了统一鉴权以后  如果把下载接口也拦截了 且前端使用的是a标签 可以用如下方法解决 替换调请求url和请求方式 , 方式一和方式二任意注释一个就可以运行了 方式1用的是原生的XmlHttpReque ...

  7. A 标签下载文件 Header 中带上用于鉴权的 Token

    加了统一鉴权以后,可能会把 A 标签下载的接口也给拦截了,但是 A 标签是无法带上 Token 的,本文将介绍如何让 A 标签支持像 Ajax 一样发送请求. 加了统一鉴权以后 如果把下载接口也拦截了 ...

  8. js 点击下载文件、图片

    想直接看结论,看代码方法一!!!方法二和方法三不兼容,只是延伸下思路. 参考: https://blog.csdn.net/weixin_33694620/article/details/881705 ...

  9. vue.js接收并下载文件流(blob对象)

    在vue框架中,与传统的根据路径下载文件(document.getElementById("").src='')方式不同,有时候,我们会需要将上传的文件在后台直接进行处理再回传到前 ...

  10. 原生JS实现Ajax下载文件

    /*** url 下载url* filename 下载文件名称*/ function download(url, filename) {var xhr = new XMLHttpRequest();x ...

最新文章

  1. Linux 学习_在Linux下面安装eclipse
  2. thymeleaf文档_springboot中Thymeleaf和Freemarker模板引擎的区别
  3. 局部保留投影(LPP)推导
  4. OpenCL memory object 之 Global memory (1)
  5. 6-6-2:STL之map和set——map的基本使用
  6. 从零开始学前端:过渡和动画 --- 今天你学习了吗?(CSS:Day20)
  7. java两个栈怎么完成初始化_Spring bean初始化及销毁你必须要掌握的回调方法
  8. custom transition animation between UIViewControllers
  9. 站立会议05--个人进度
  10. 【Spring-tx】关于spring事务的思考
  11. java电表抄表器接口_远程抄表系统接线图和远程抄表电表安装图及实例
  12. Unity初级坦克大战游戏实现(Battle Tank)带工程源码资源包(二)
  13. 微信小程序:事件传参
  14. dede后台登陆提示 验证码不正确 解决办法(新版)
  15. cvc降噪和主动降噪_音频知识:CVC降噪和ANC主动降噪的区别和应用
  16. 证件照制作相关的人像抠图/分割各家接口整理分析
  17. cocos2dx 植物大战僵尸 5 塔基Terrain的更新
  18. 【opencv】车牌定位及倾斜较正
  19. xctf攻防世界 MISC高手进阶区 3-11
  20. EDI Capability 表示什么?

热门文章

  1. Python处理excel表格中的数据
  2. CAD中怎么配置灭火器?
  3. 冲顶大会/芝士超人/花椒直播...答题助手
  4. Apache --Tomcat 8下载与配置(Tomcat压缩包下载 Windows 7 x64)
  5. 熟悉scrapy的基本使用(创建与运行,目录结构)---爬虫项目
  6. 为什么要分层?数据仓库分层架构深度讲解
  7. c语言题库及答案(选择题,C语言题库及答案(选择题).doc
  8. [ 数据集 ] MINIST 数据集介绍
  9. 目前主流的数据库有哪些?
  10. 最佳网络工具--OpManager局域网管理软件