vue + js 封装下载文件的方法(对不同浏览器作兼容)

vue.cli项目封装全局axios,封装请求,封装公共的api和调用请求的全过程 vue项目的前期配置 封装axios实例 封装API 阅读详情
import {
	ElMessage
} from 'element-plus'

export default function downloadFile(res, fileName) {
	const blob = res;

	const downloadElement = document.createElement('a');
	const href = window.URL.createObjectURL(blob);
	downloadElement.href = href;
	const userAgent = navigator.userAgent;
	const isIE = userAgent.indexOf('compatible') > -1 && userAgent.indexOf('MSIE') > -1;
	const isIE11 = userAgent.indexOf('Trident') > -1 && userAgent.indexOf('rv:11.0') > -1;
	const isEdge = userAgent.indexOf('Edge') > -1;
	if (isIE || isIE11 || isEdge) {
		navigator.msSaveBlob(blob, fileName);
	} else {
		downloadElement.download = fileName;
		document.body.appendChild(downloadElement);
		downloadElement.click();
		document.body.removeChild(downloadElement);
		window.URL.revokeObjectURL(href);
	}
}

element-plus在这里主要使用ElMessage对信息进行提示,可以用其他方法或组件库代替。

利用pdf.js封装vue组件在vue中实现在线pdf查看 pdf.js是一款开源的pdf文档读取解析插件,可以直接在html中进行pdf预览。pdf可以直接下载,下载地址:http://mozilla.github.io/pdf.js/。pdf.js主要包含两个库文件,一个pdf.js和pdf.worker.js,一个负责api解析,一个负责核心解析。也可以直接进行下载使用,我这边使用的是cnpm下载。1. 安装 cnpm isntall --save ... 阅读详情

相关推荐

Vue项目中Axios封装实战指南(兼容Vue2/Vue3)

本文介绍了一套工业级Axios封装方案,适用于Vue2/Vue3项目开发。方案包含请求/响应拦截、环境隔离、API统一管理等核心功能,支持Token自动添加、错误分类处理、请求取消等特性。通过创建request.js工具类,实现基础配置统一化;采用环境变量实现多环境隔离;按业务模块管理API提升可维护性。文章详细说明了Vue3和Vue2的不同适配方式,并提供了防止重复请求的扩展方案。该封装方案能有效减少代码冗余,提升开发效率和用户体验,是前端工程化开发的重要实践。

前端互助会 1490

js 通过URL下载PDF文件(兼容PC端、移动端大部分浏览器)

在网上找了好多资料,最后总结下自己的实现方案,废话不多说,直接上代码 一、 第一种,后台服务器有静态资源且是固定的文件名(GET方式下载文件) window.location.href="http://www.域名/template.xlsx(文件名)" 二、第二种,后台返回文件流,前台进行读取保存 1、前端代码 /** * 文件下载(from表单单文件下载) * @param url */ function downloadFileForm(url) { var file.

wangfei 1万+

vue上传(兼容IE9)

 项目中vue文件上传功能原来使用的是element ui组件,头像上传裁剪使用的是vue-image-crop-upload,但是这两个组件只支持到IE10+,现在项目要求兼容IE9,这两个组件就没办法实现。 我基于Web Uploader封装了vue上传功能,Web Uploader是一个简单的以HTML5为主,FLASH为辅的上传组件,IE10以下可以使用FLASH上传。废话不多说,直接上码...

临水人亦静 1万+

JS实现Blob文件流下载

JS实现文件下载,通过Blob实现二进制文件流下载

qq_43651168的博客 8858

CMOS图像传感器系列--(四)HDR之LOFIC技术

CMOS图像传感器HDR技术之LOFIC解析 LOFIC(横向溢出积分电容器)技术是当前高动态范围成像的重要方案,通过在像素光电二极管旁设置高密度电容器收集溢出电荷,有效保留高光细节。该技术采用特殊像素结构,通过skim level触发电荷转移,实现单帧HDR成像。然而LOFIC存在显著局限性:高光区域噪声明显且难以消除,动态范围拓展不均衡(主要优化亮部),需复杂MIM工艺导致成本升高。为应对挑战,行业提出混合方案(如结合DCG技术)和工艺改进方向。OmniVision最新车载传感器OX08D10就采用了L

AIoT深度探索者 | 嵌入式系统架构师 深耕物联网(IoT)与人工智能(AI)融合技术,聚焦​​边缘计算、图像开发、低功耗通信协议​​,致力于智能硬件,关注我获取最新技术文章信息与海量资源~ 5806

深入浅出PWM:用示波器带你理解占空比与滤波效果

本文通过示波器实测,深入浅出地解析了PWM(脉宽调制)的核心原理。从占空比与平均电压的关系入手,详细演示了RC及有源滤波器如何将数字方波“翻译”为平滑模拟电压,并探讨了PWM-DAC的精度、响应速度等关键设计考量,为硬件调试与电路设计提供了实用的实践指导。

weixin_29292431的博客 346

vue封装下载方法,实现下载功能,下载excel,文件等(利用a标签实现下载)

【代码】vue封装下载方法,实现下载功能,下载excel,文件等(利用a标签实现下载)

Sept_16R的博客 756

车载测试工程师必备:5分钟搞定CANoe台架搭建(附DBC导入技巧)

本文为车载测试工程师提供快速搭建CANoe测试台架的实用指南,涵盖硬件连接、DBC文件导入及常见报错解决方案。通过详细步骤和高效技巧,帮助工程师在5分钟内完成台架搭建,提升车载测试效率,特别适合紧急功能验证场景。

potato的博客 815

vue中文件下载的几种方式及方法封装

vue中文件下载的几种方式及方法封装

zezejingi的博客 2148

AI驱动的CNC闭环加工系统:边缘实时控制与IIoT反馈实践

闭环控制是工业自动化的核心概念,指通过实时反馈调节系统输出以逼近目标值;其技术原理在于构建短于被控对象时间常数的确定性反馈链路,从而保障动态响应精度与稳定性。在智能制造落地中,AI正从离线分析工具演进为嵌入式实时决策单元,其核心价值在于将工艺知识模型化、控制指令轻量化、执行路径边缘化。典型应用场景包括CNC加工过程中的振动自适应调参、刀具磨损在线补偿及多机协同优化。本实践聚焦FANUC 0i-MF平台,基于Modbus TCP硬实时通信与轻量LSTM+CNN融合模型,实现217毫秒级AI推理与PMC寄存器直

weixin_29704001的博客 323

025、空间降噪与时域降噪:噪声抑制与细节保留的平衡艺术

《降噪技术的平衡艺术:空间与时域降噪的协同优化》 本文深入探讨了图像处理中空间降噪与时域降噪的技术原理与工程实践。空间降噪通过像素级处理提升单帧质量,而时域降噪则利用帧间信息增强稳定性。文章揭示了两种方法在实际应用中的矛盾点:过度降噪会导致细节损失,影响后续算法性能。作者结合车载环视系统等实战案例,详细分享了参数调优经验,包括运动自适应策略、边缘保持技巧和嵌入式平台优化方案。特别强调降噪的最终目标应服务于下游算法需求,而非单纯追求图像美观。文章为工程人员提供了从理论到实践的完整指导,展现了降噪技术在效果与性

sundong_81的博客 186

javascript 接收blob流数据, 并导出(兼容主流浏览器)

近期做项目遇到的兼容性问题, 在此记录: blobToExcel (blob, filename) { let fname = filename if (navigator.userAgent.indexOf('Firefox') >= 0) { let point = filename.indexOf('.') if (point == -1...

hd07220的博客 3171

【华为OD机试真题】439、精准核酸检测 | 机试真题+思路参考+代码解析 (C++、Java、Py、C语言、JS)

题目描述 >为了达到新冠疫情精准防控的需要,为了避免全员核酸检测带来的浪费,需要精准圈定可能被感染的人群现在根据传染病流调以及大数据分析,得到了每个人之间在时间、空间上是否存在轨迹的交叉。现在给定一组确诊人品编号(X1 X2 X3.....n)在所有人当中,找出哪些人票要进行核酸检测,输出需要进行核酸检测的人数。(注意:确诊病例自身不需要再做核酸检) >  需要进行核酸检测的人,是病毒传播链条上的所有人员,即有可能通过确诊病例所能传播到的所有人   例如:A是确诊病例,A和B有接触、B和

KJ.JK 1436

js nodejs vuejs 关系与区别

Java Script的三个主要组成部分是:ECMAScript(核心),DOM(文档对象模型),BOM(浏览器对象模型)。 ECMAScript 是布兰登·艾克开发的一种脚本语言的标准化规范; 是一种由Ecma国际通过ECMA-262标准化的脚本程序设计语言。这种语言在万维网上应用广泛,它往往被称为JavaScript或JScript,但实际上后两者是ECMA-262标准的...

memory的博客 7090

华为OD机试 - 战士技能规划设计 - 数组(Python/JS/C/C++ 新系统 100分)

本专栏收录于《华为OD机试真题(Python/JS/C/C++)》。刷的越多,抽中的概率越大,私信哪吒,备注华为OD,加入华为OD刷题交流群,每一题都有详细的答题思路、详细的代码注释、3个测试用例、为什么这道题采用XX算法、XX算法的适用场景,发现新题目,随时更新。你为一款动作游戏设计战士角色的技能:战士每个技能会消耗不同能量,释放技能有 2 个约束:连续释放技能数量不能超过 m 个,技能能量总和不能超过能量上限 k;如果超过则必须中断当前技能,进入调息状态(即分段)。战士有一项爆发技巧:在单次战斗中有一次

学Java,找哪吒 236

AI大模型入门到实战系列(二十一)命名实体识别(NER)

命名实体识别(NER)是自然语言处理中的关键任务,旨在从文本中识别并分类预定义类别的实体(如人名、地点、组织等)。其核心步骤包括文本预处理、实体边界检测和类型分类。主流技术方法经历了从基于规则、统计机器学习到深度学习的演进,当前主要采用预训练语言模型(如BERT)和序列标注技术(如BiLSTM-CRF)。关键技术挑战包括实体边界模糊、嵌套实体和领域适应等问题。NER广泛应用于信息抽取、搜索引擎优化和知识图谱构建等领域,常用精确率、召回率和F1值作为评估指标。实际应用中通常采用BIO标注体系,并通过标签对齐处

echo的博客 1624

HTML引入vue.js,在ie浏览器中不显示

因为只有两个页面,所以我没有用 vue-cli 搭框架,直接在 HTML 中引入vue.js 文件。发现其他浏览器都能正常显示,ie 下显示不正常,而且还报错,错误信息如下: 原因: 主要是因为 ie 不支持 ES6 的语法。 在 vue-cli 中,ie 浏览器下不显示,需要下载安装 babel-polyfill(npm i babel-polyfill),同样的,在 html 中使用 vue...

Start2019 6045

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

vue项目中预览pdf文件

一、利用浏览器自带的预览pdf // [pdfUrl] 获取pdf地址 eg:http://mozilla.github.io/pdf.js/web/compressed.tracemonkey-pldi-09.pdf <iframe ref="mainiframe" :src="pdfUrl" style="height:100%;width:100%" ></iframe...

prey1025的博客 5万+

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

Vue.js的Vue2版本中,如何设计大文件的分块上传下载方案?

各位看官,我是浙江某高校网络工程专业的大三学生,最近在搞一个"史诗级"项目——文件管理系统。为啥说是史诗级?因为光是需求就快把我整秃噜皮了!

2501_90646763的博客 904

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

Vue引入远程JS文件

问题 最近在使用 Vue 做东西,用到钉钉扫描登录的功能,这里需要引入远程的 js 文件,因为 Vue 的方式跟之前的不太一样,又不想把文件下载到本地应用,找了一下解决的方法,貌似都需要引入第三方的库,最后找到了解决方案,分享之。 思路 一开始的思路是在 Vue 加载完 Dom 之后(mounted),使用 JavaScript 脚本在 body 中插入远程的脚本文件。 后来发现了 Vu...

weixin_34343308的博客 3494

vue封装js和引入外部js文件

vue封装js和引入外部js文件 现在src目录下新建uitlmap.js文件

skr_Rany的博客 1734

Vue.js 组件封装:从小白到高手的蜕变之路

本文全面介绍了Vue组件开发的核心内容。首先阐述了组件化开发的优势(提高复用性、增强可维护性、便于协作),然后详细说明了开发环境搭建步骤(Node.js安装、Vue CLI配置)。接着深入讲解了组件封装技术:包括Props传值、事件派发机制、三种插槽类型(默认、具名、作用域),并辅以按钮组件和表单组件的实战案例。最后强调了组件封装中的独立性原则、样式处理技巧和性能优化方法。本教程从基础概念到高级应用,系统性地呈现了Vue组件开发的完整知识体系,为开发者提供了全面的实战指导。

大雨淅淅的博客 2033

vue封装通用下载方法

vue封装通用下载方法 ???????????? ​ 最近借助 vue 和 ElemenUI 在项目中写下载时,用的是 window.open location.href ,但是页面总会跳转并且显示找不到,不会进行下载,之后重新封装了一种方法,不过是找大佬帮忙的,最核心的代码我到现在还没看明白,但记录下来总归是没错的φ(>ω<*) ⛄⛄⛄ 框架使用的若依管理系统(前后端分离),所以项目中原来有封装好的下载方法,但是行不通,所以换了其它的 下载方法封装 下载方法需要封装在 reques

Skellig 1520

js vue 下载excel(.xls)文件

@[TOC](js vue 下载excel(.xls)文件) 1、首先,后端给到的是一个文件在服务器中的存储地址 D:\MaxSecFile\Export\Alarm_20201023111205.xls 2、本下载针对chrome浏览器,使用a标签进行下载 import request from '@/util/request' // 下载 downloadExcel() { // 筛选数据的条件 let params = {} download(params).then(res => {

weixin_43452622的博客 1013

vue项目封装axios-封装请求-封装公共的api和调用请求

在做vue中大型项目的时候,官方推荐使用axios,但是原生的axios可能对项目的适配不友好,所以,在工程开始的来封装一下axios,保持全项目数据处理的统一性。此文主要讲在vue-cil项目中如何封装axios,封装请求,封装公共的api,页面如何调用请求。 如果你能看到这篇文章,鉴于有很多小白可能会参考我这篇文章来进行前期配置,特说明下正式配置路线: 拿到项目及后台接口,首先做的是配置全局代理及第二点; 全局封装axios及第三点request.js; 过滤axios请求方式,控制路径及参数

JackieDYH的博客 7259

前端vue 封装上传文件和下载文件 方法

前端vue 封装上传文件和下载文件

qq_16920371的博客 1321
上一篇: Vue3的优点,为什么要使用Vue3
下一篇: Vue项目部署后,无需手动清浏览器缓存,自动实现代码更新的方法。
Lxg-JJJJ
博客等级 码龄7年 960粉丝 16原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值