在项目中实现文件下载的方法:

一、接口返回url或者get请求访问接口直接下载。

  1. window.location.href = xxxurl
  2. 使用a标签下载
const alink= document.createElement('a')alink.style = 'display: none;'alink.href = srcalink.click()
  1. file-saver 等等插件

二、有时项目会要求在发送请求的时候加上token验证或者请求头,会返回文件流

axios

设 content 为后端返回文件流const blob = new Blob([content], {type: 'application/octet-stream',  //type 根据具体情况填写 下面是type对应表}) // 通过返回的流数据 手动构建blob 流const url = URL.createObjectURL(blob) // 这里是将文件流转化为一个文件地址const alink = document.createElement('a')alink.href = urlalink.download = 'xx文件名'alink.style.display = 'none'alink.click()URL.revokeObjectURL(alink.href) // 释放URL 对象

fetch

fetch(`${ServerConfig.getServerUrl()}/studio-thirdparty-dix/console-api/diconsole/downloaddip`,{headers: header,method: 'POST',body: JSON.stringify(self.params),}).then((r) => {if (r.status === 200) {return r.blob()}return false}).then((r) => {if (r === false) {self.$Message.error('下载失败,请稍后重试!')} else {const a = document.createElement('a')a.download="xxx文件名"a.href = URL.createObjectURL(r)a.style.display = 'none'a.click()URL.revokeObjectURL(alink.href) // 释放URL 对象}}).catch((err) => {console.log(err)})

文件type对应表

后缀名  文件类型                        类型(type)
.xls    Microsoft Excel                    application/vnd.ms-excel
.xlsx   Microsoft Excel (OpenXML)   application/vnd.openxmlformats-officedocument.spreadsheetml.sheet
.csv    CSV text/csv
.doc    Microsoft Word              application/msword
.docx   Microsoft Word (OpenXML)    application/vnd.openxmlformats-officedocument.wordprocessingml.document
.pdf    PDF application/pdf
.ppt    Microsoft PowerPoint          application/vnd.ms-powerpoint
.pptx   Microsoft PowerPoint (OpenXML)      application/vnd.openxmlformats-officedocument.presentationml.presentation
.png    便携式网络图形(PNG)              image/png
.gif    GIF image/gif
.jpeg   JPEG 图片         image/jpeg
.jpg    JPEG 图片 image/jpeg
.mp3    MP3 音频  audio/mpeg
.aac    AAC 音频  audio/aac
.html   超文本标记语言 (HTML)  text/html
.css    CSS text/css
.js JavaScript  text/javascript
.json   JSON 格式 application/json
.abw    AbiWord 文档  application/x-abiword
.arc    存档文档(多个文件嵌入)    application/x-freearc
.avi    AVI: 音频视频交错 video/x-msvideo
.azw    亚马逊Kindle电子书格式  application/vnd.amazon.ebook
.bin    任何类型的二进制数据  application/octet-stream
.bmp    Windows OS/2位图图形    image/bmp
.bz BZip 存档 application/x-bzip
.bz2    BZip2 存档    application/x-bzip2
.csh    C-Shell 脚本  application/x-csh
.eot    MS嵌入式OpenType字体 application/vnd.ms-fontobject
.epub   电子出版物(EPUB) application/epub+zip
.htm    超文本标记语言 (HTML)  text/html
.ico    Icon 格式 image/vnd.microsoft.icon
.ics    iCalendar 格式    text/calendar
.jar    Java Archive (JAR)  application/java-archive
.jsonld JSON-LD 格式  application/ld+json
.mid    乐器数字接口(MIDI)    audio/midi audio/x-midi
.midi   乐器数字接口(MIDI)    audio/midi audio/x-midi
.mjs    JavaScript 模块   text/javascript
.mpeg   MPEG 视频 video/mpeg
.mpkg   苹果安装程序包 application/vnd.apple.installer+xml
.odp    OpenDocument演示文档    application/vnd.oasis.opendocument.presentation
.ods    OpenDocument 电子表格文件 application/vnd.oasis.opendocument.spreadsheet
.odt    OpenDocument 文本文档   application/vnd.oasis.opendocument.text
.oga    OGG 音频  audio/ogg
.ogv    OGG 视频  video/ogg
.ogx    OGG application/ogg
.otf    OpenType 字体 font/otf
.rar    RAR 存档  application/x-rar-compressed
.rtf    富文本格式 (RTF) application/rtf
.sh Bourne shell 脚本 application/x-sh
.svg    可缩放矢量图形 (SVG)   image/svg+xml
.swf    小型web格式 (SWF) or Adobe Flash document   application/x-shockwave-flash
.tar    Tape 归档(TAR)    application/x-tar
.tif    标记图像文件格式 (TIFF) image/tiff
.tiff   Tagged Image File Format (TIFF) image/tiff
.ttf    TrueType 字体 font/ttf
.txt    Text    text/plain
.vsd    Microsoft Visio application/vnd.visio
.wav    波形音频格式  audio/wav
.weba   WEBM 音频 audio/webm
.webm   WEBM 视频 video/webm
.webp   WEBP 图片 image/webp
.woff   网页开放字体格式 (WOFF) font/woff
.woff2  网页开放字体格式 (WOFF) font/woff2
.xhtml  XHTML   application/xhtml+xml
.xml    XML application/xml(普通用户不可读)、text/xml(普通用户可读)
.xul    XUL application/vnd.mozilla.xul+xml
.zip    ZIP application/zip
.3gp    3GPP audio/video 容器 video/3gpp、audio/3gpp(不含视频)
.3g2    3GPP2 audio/video 容器    video/3gpp2、audio/3gpp2(不含视频)
.7z 7-zip   application/x-7z-compressed

前端下载文件方法、 后台接口返回二进制文件流、前端通过blob对象并使用fetch/axios实现下载相关推荐

  1. 前端接收二进制文件流(使用blob对象)

    前端在做管理系统开发时经常遇到的需求:下载文件入Excel,World,zip 处理方式有两种: 1.后端生成下载地址,前端调用 2.后端返回二进制文件流,前端转换后下载 本文主要介绍第二种 在向后端 ...

  2. 调用后台接口返回报错前端隐藏提示_前端异常监控解决方案研究(转)

    前端监控包括行为监控.异常监控.性能监控等,本文主要讨论异常监控.对于前端而言,和后端处于同一个监控系统中,前端有自己的监控方案,后端也有自己等监控方案,但两者并不分离,因为一个用户在操作应用过程中如 ...

  3. 调用后台接口返回报错前端隐藏提示_从零开始的Android新项目9 - 前端用后台接口设计...

    这回来讲讲后台接口的设计. 可能有同学会觉得后台的接口和我们大前端开发有什么关系?试想一下,在碰到一些不合理的接口设计的时候,你们开发是否觉得很别扭--需要为了坑爹的接口写很多脏代码引坑?甚至,这么开 ...

  4. 后端返回二进制文件流 前端处理并下载jpg格式图片

    后端返回数据格式: 实现效果: 应用 axios+vue //下载二维码onDownloadQR() {let data = {code: this.downloadQr,};downqrcode(d ...

  5. 调用后台接口返回报错前端隐藏提示_腾讯社交联盟广告

    开发者帮助中心 优量汇服务体系升级了,除查阅本页常见问题外,还可以通过以下渠道解决您遇到的问题 1. 实时智能客服 入口:优量汇官网.开发者平台.优量汇服务号 时间:7*24即时问答 服务内容:涵盖 ...

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

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

  7. 百度云下载文件方法:PC 和 群晖 Docker

    百度云下载文件方法:PC 和 群晖 Docker  目录 - 百度云下载文件方法:PC 和 群晖 Docker     - 1.PC端其它软件         - 1.1.百度云客户端的替代软件    ...

  8. js下载文件方法记录

    js下载文件方法记录 downLoadExcel() { this.downloading = true axios.get(/xxxx, { responseType: 'blob', params ...

  9. 天翼云盘突破限制无需客户端下载文件方法

    天翼云盘突破限制无需客户端下载文件方法 在线网盘的市场当中,百度网盘一直处于"主导"地位. 这么肥的一块蛋糕,其他厂商自然不想丢掉,所以他们也一直在做自己的网盘,只是影响力太小.大 ...

最新文章

  1. 新手求助,关于添加隐式intent程序崩溃问题
  2. TP5实现支付宝电脑网站支付学习笔记
  3. 如果优美的将pytorch的卷积为自己所用
  4. C# ACCESS数据库操作类
  5. linux内核5.3支持cpu,Linux 5.3版内核重磅发布:支持中国兆芯x86 CPU
  6. 投票选举c语言程序,C语言元旦礼物:经典入门问题分析——选举投票
  7. input标签用法解读
  8. android studio gradle 学习,学习Android Studio里的Gradle
  9. 人脸识别时一定要穿衣服!小心被看光光......
  10. CATransition(过渡)
  11. 实践出真知--ZAC《网络营销实战密码》
  12. BGP通告路由的方法以及BGP静态路由下放
  13. java反射对实体类取值和赋值,可以写成通过实体类获取其他元素的数据,很方便哦~~~...
  14. 5.Http Server
  15. 实现atoi函数(C++实现)
  16. 音频分析工具:zplane de​​​​​​​Coda for Mac
  17. 什么是CSS网页切图
  18. (新手必备)电子电路里面你必须知道的知识!!!
  19. 印度IT行业普遍高薪-印度互联网泡沫判断
  20. 虚拟桌面和云桌面办公系统

热门文章

  1. 为什么很多企业都在用文件加密系统?
  2. 学习3dmax 孤立操作
  3. python输出一棵松树_零基础学Python--------第8章 模块
  4. 原生 CSS Custom Highlight 终于来了
  5. Raspberry建立Wifi热点
  6. WPF教程(四)RelativeSource属性(转)
  7. 销售英语系列:货品成交
  8. unity 适配ipad_Unity iPhone几乎可以用于iPad游戏了
  9. 笔记本中ps的F8快捷键无效解决办法
  10. ASP.NET MVC 3 Framework之旅 第一章