获取文件名下载并兼容IE(文件流)
获取文件名下载并兼容IE(文件流)
// 下载证件照片async download(id) {const vm = this;const res = await commonApi.downloadAttachment({ids: [id]});if (res.status === 200) {if (res.data) {let fileName = "";let disposition = res.headers["content-disposition"];if (disposition) {let respcds = disposition.split(";");for (let i = 0; i < respcds.length; i++) {let header = respcds[i];if (header !== null && header !== "") {let headerValue = header.split("=");if (headerValue !== null && headerValue.length > 0) {if (headerValue[0].toLowerCase() === "filename") {fileName = decodeURI(headerValue[1]);break;}}}}}let blob = new Blob([res.data]);if (myBrowser() === "IE" || myBrowser() === "Edge") {window.navigator.msSaveOrOpenBlob(blob, fileName);return false;}let link = document.createElement("a");link.href = window.URL.createObjectURL(blob);link.download = fileName;link.click();window.URL.revokeObjectURL(link.href);} else {vm.$message.error("下载错误,请重试或联系管理员");}}}// 判断浏览器类型
function myBrowser() {const userAgent = navigator.userAgent; // 取得浏览器的userAgent字符串
const isOpera = userAgent.indexOf("Opera") > -1;
if (isOpera) {return "Opera";
}
if (userAgent.indexOf("Firefox") > -1) {return "FF";
}
if (userAgent.indexOf("Chrome") > -1) {return "Chrome";
}
if (userAgent.indexOf("Safari") > -1) {return "Safari";
}
if (userAgent.indexOf("compatible") > -1 &&userAgent.indexOf("MSIE") > -1 &&!isOpera
) {return "IE";
}
if (userAgent.indexOf("Trident") > -1) {return "Edge";
}
return "";
}
获取文件名下载并兼容IE(文件流)相关推荐
- element一次上传多个文件,并将文件名展示出来;使用文件流进行下载
1.文件批量上传 <el-form-item label="项目资料:" prop="attachmentVos"><!-- 上传的文件进行回 ...
- vue 后台返回的文件流进行预览_vue项目-pdf预览和下载,后台返回文件流形式
背景:正好最近碰到了这种需求,记录下来,方便以后查看. 后端返回的文件流数据如下图所示: 后台返回数据.png 一.pdf的预览 一开始的时候百度了很多方法,有建议用pdfJs插件的,有iframe嵌 ...
- vue+axios 实现Excel下载,并解析文件流
功能:导出表格数据,形成一个excel文件,可打开查看内容. 1. axios请求设置头部和请求方法 const serviceHttp = axios.create({baseURL: proces ...
- 客户端请求下载,服务端响应下载请求并返回文件流
工作中遇到这样的需求: 1.A项目提供下载服务 2.B项目封装A项目的下载服务 3.通过B项目来下载文件. 遇到的场景是:只有A服务可以下载文件,这里ip 限制,其他的服务器无法直接下载文件,这里类似 ...
- 功能需求-根据页面生成pdf,pdf不需要下载只需把文件流上传到服务器
前言 根据自身当下技术的水平和实际情况,做一个简单的记录. 需求描述 在项目中有采购合同和销售合同,这些合同新建好之后都需要有人去审核,审核通过后需要把合同生成一个pdf文件然后后端给保存起来 在项目 ...
- java 获取文件名长度_利用Java文件类File的方法,获取磁盘文件的文件名、长度、大小等特性...
利用Java文件类File的方法,获取磁盘文件的文件名.长度.大小等特性. 如题,大神们谁可以编写一个这样的java程序? happy530755 | 浏览 1482 次 |举报 我 ...
- js下载文件流,提示文件损坏问题
记录一下前端下载后端返回的文件流,提示文件损坏问题. const blob = new Blob([content.data], {// type是需要对应的文件类型type:"applic ...
- bat修改文件内容_批量获取文件名,这几招太高效了!
每周末整理好重点报告库内容后,风弦都会发一篇推文,文章中为大家列出本周收录报告的清单. 有朋友就很好奇,我是怎么获取这么多文件的文件名的,复制粘贴么?当然,不是!重点报告库每周收录100+最新报告,复 ...
- react接收后端文件_React获取Java后台文件流并下载Excel文件流程解析
记录使用blob对象接收java后台文件流并下载为xlsx格式的详细过程,关键部分代码如下. 首先在java后台中设置response中的参数: public void exportExcel(Htt ...
最新文章
- c语言仪器仪表课程设计,【图片】发几个C语言课程设计源代码(恭喜自己当上技术小吧主)【东华理工大学吧】_百度贴吧...
- 江西财经计算机应用杨教授,江西财经大学信息管理学院研究生导师介绍:刘德喜...
- 我们并没有觉得MapReduce速度慢,直到Spark出现
- 搜索的php mysql代码生成器_四款强大的PHP代码生成器
- 目标检测——YOLOv5的学习笔记
- python(day04)
- IDEA 查看源码快捷键
- UVa 12174 (滑动窗口) Shuffle
- 为什么微信无法打开html文件,微信网页版打不开怎么办?微信网页版无法打开的解决方法...
- win10下使用opencv4.5.0 cuda版本编译和目标检测的几个问题
- 计算机功能键盘使用方法,键盘的使用方法介绍 键盘上都有哪些功能按键
- Android开发 RFC 2136 DNS动态更新协议
- 又是一江春水自东流!
- 大数据Python基础学习——练习(二)
- 《A Novel Approach to 3-D Gaze Tracking Using Stereo Cameras》论文阅读
- python余数不等于的符号_有乐 这些符号如此重要,不知道就等于“白练琴”
- Python|求a + aa + aaa + … + aa…a的值
- 微信小程序请求的封装及跨域的解决。
- RecyclerView添加蒙板引导信息
- 供给、需求和弹性的三种应用
热门文章
- 不乱于心,不困于情,不畏将来,不念过往
- Python实现发送邮件(实现单发/群发邮件验证码)
- 安卓平板装MySQL_准备购入一部平板作为学习用具,有推荐的吗?
- 环洋调研报告-2021年全球元宇宙NFT行业调研及趋势分析报告
- 国防科技大学 计算机硬件技术基础,国防科技大学--操作系统教程【40讲】--罗宇...
- Nginx启动失败的几种错误处理
- C++是什么?怎么学?
- 玩转微信小程序 之 获取用户信息以及玩转基本列表渲染(2019/04/14)
- 项目记录——为沙特客户Android开发Google地图应用
- ABP Vnext 学习02-授权中心 重写Login 页面