First step: 建js文件,添加如下代码

/*** 通过文件类型来返回blob数据类型* @param {*} fileType* @returns*/
function getFileTypeMime (fileType) {switch (fileType) {// 若无对应fileType,会导致在移动端无法下载/打开该文件或者空白// 若不加,则移动端无法打开// https://developer.mozilla.org/zh-CN/docs/Web/HTTP/Basics_of_HTTP/MIME_types/Common_types.case 'png':return 'image/png'case 'doc':return 'application/msword'case 'docx':return 'application/vnd.openxmlformats-officedocument.wordprocessingml.document;charset=utf-8'case 'jpg':case 'jpeg':return 'image/jpeg'case 'gif':return 'image/gif'case 'svg':return 'image/svg+xml'case 'tif':case 'tiff':return 'image/tiff'case 'txt':return 'text/plain'case 'ppt':return 'application/vnd.ms-powerpoint'case 'pptx':return 'application/vnd.openxmlformats-officedocument.presentationml.presentation'case 'xls':return 'application/vnd.ms-excel'case 'xlsx':return 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'case 'zip':return 'application/zip'case '7z':return 'application/x-7z-compressed'case 'pdf':return 'application/pdf'case 'mp3':return 'audio/mpeg'}
}
/*** 下载文件*/
export default async (blobData, fileName = '', fileType = '') => {const fileTypeMime = getFileTypeMime(fileType)if (!blobData) returnlet blob = new Blob([blobData], {type: fileTypeMime})const blobUrl = window.URL.createObjectURL(blob)const a = document.createElement('a')a.download = fileNamea.href = blobUrla.target = '_blank'a.click()window.URL.revokeObjectURL(blobUrl)
}

Second step: 然后需要在请求头添加:

responseType: 'blob',

Third step: 最后在接口请求文件调用js文件,处理结果时调用downloadFile()即可

import downloadFile from '**/downloadFile'const type = 'docx' // 文件格式
downloadFile(res.data,`${name}.${type}`,type) // name:下载之后想要的文件名

微信端需要判断机型的话可使用如下代码:

 // 判断机型
getUA (userAgent) {if (userAgent && typeof userAgent === 'string') {return userAgent}return navigator.userAgent
},
if (this.getUA().match(/Android/i)){// Android
} else {// ios
}

开发过程中移动端实现文件下载相关推荐

  1. 开发过程中快速抓包并解析

    开发过程中快速抓包并解析 这几天小编在工作中遇到了一个灵异事件,客户端使用的是安卓原生系统,服务端使用的是java.需求就是客户端在照相的时候可以实时上传照片.后台接收并保存,并且可以在平台上显示.看 ...

  2. web开发过程中经常用到的一些公共方法及操作

    进化成为程序猿也有段岁月了,所谓的经验,广度还是依旧,只不过是对于某种功能有了多种实现方式的想法.每天依旧不厌其烦的敲打着代码,每一行代码的回车似乎都有一种似曾相识的感觉.于是乎:粘贴复制,再粘贴再复 ...

  3. Asp.net开发过程中,我们会遇到很多Exception

    在Asp.net开发过程中,我们会遇到很多Exception,不处理这些Exception的话会出现很难看的页面. 还有一些我们未预料到的Exception,当发生Exception时,我们也必须进行 ...

  4. 关于开发过程中的空指针问题

    关于开发过程中的空指针问题 从以下角度来说明怎么在一定程序上,合理避免这个问题. public字段的使用 多层局部变量调用所产生的NullPointException问题 public字段的使用 其实 ...

  5. 浅谈Taro和Apollo在开发过程中的实践

    一.什么是Taro Taro是凹凸实验室研发的一套遵循React语法规范的多端开发的解决方案.使用Taro,可以只书写一套代码,再通过 Taro 的编译工具,将源代码分别编译出可以在不同端(微信/百度 ...

  6. 微服务开发过程中需要注意的若干事项

    微服务,说比做容易!我们更关注怎样将这种架构设计思想融入到实际工作中,微服务更关注各服务之间的调用.管理,它追求软件研发过程中的自动化,例如:自动编译.打包.发布,自动化运维等等,这里的每一个自动化的 ...

  7. Java开发过程中需要注意的技巧有哪些?

    在Java工程师平常的开发过程中,由于业务的不同,可能关注的点有很多不一样的地方,但是在基础层面还是有一些共性的.此文概括了在Java开发.测试.部署.工程化方面一些需要注意的地方,供大家参考. 将一 ...

  8. Profibus-DP智能从站开发过程中若干核心问题的探讨

    Profibus-DP智能从站开发过程中若干核心问题的探讨   2007-7-13 10:59:00 胥 军 供稿 1  引言 随着Profibus总线技术在我国的进一步普及,基于Profibus-D ...

  9. 一键部署开箱即用的代理服务器,解决 SAP UI5 应用开发过程中访问远端 OData 服务的跨域问题试读版

    一套适合 SAP UI5 初学者循序渐进的学习教程 作者简介 Jerry Wang,2007 年从电子科技大学计算机专业硕士毕业后加入 SAP 成都研究院工作至今.Jerry 是 SAP 社区导师,S ...

最新文章

  1. mysql查询今天、昨天、7天、近30天、本月、上一月 数据
  2. Excel2010中VLOOKUP函数跨工作簿使用实例:
  3. POJ - 1236 Network of Schools(强连通缩点)
  4. python基本输入输出系统_Python的输入输出
  5. AspNetCoreMassTransit Courier实现分布式事务
  6. rethat linux安装nginx,nginx系列-00-编译安装-CentOS/RedHat
  7. 黑龙江高职计算机对口升学,2020年黑龙江中职对口招生录取院校投档分数线
  8. Value of key '' is not a string! Cannot translate the value of keypath ''. Use the v
  9. Linux下WebLogic 12c启动、部署命令行
  10. 中原工学院计算机网络,计算机网络 考试重点 中原工学院.doc
  11. c8815 android os,华为C8815官方原厂固件rom系统刷机包_最新升级包降级包下载
  12. Java架构师面试十大连环炮
  13. mysql count判断_【MySQL】COUNT
  14. android迷宫图像生成,Android - 绘制一个迷宫,以平滑的角色移动的画布
  15. Java 用Freemarker完美导出word文档(带图片)
  16. Secure Code Warrlor学习记录(三)
  17. 【算法设计与分析】1.主定理
  18. Pandas-DataFrame使用
  19. 干了两个星期,赚了3万!同城wifi贴项目揭秘!
  20. Local Light Field Fusion CVPR 2019

热门文章

  1. ubuntu使用deepin-wine安装微信出现版本过低问题的解决
  2. NDP1415 40V输入20A外置MOS大电流同步降压控制器IC
  3. 浙江工业大学 计算机学院,刘端阳-浙江工业大学计算机学院.DOC
  4. 谷歌在新标签页打开搜索结果(超级新手)
  5. Linux工作笔记01
  6. 部署KVM 虚拟化平台
  7. 腾讯投资“差评”遭舆论讨伐,或被迫退股!!
  8. 让你的微信小程序对用户更加友好:上拉加载和下拉刷新就是关键
  9. 迪厅装修后地板清洁与保养
  10. 计算机二级必过知识点大全,计算机二级ms-office办公软件必过知识点.doc