当前位置: 首页 > news >正文

前端文件下载

这里写自定义目录标题

  • 前端文件下载方法
    • 使用a标签
    • 使用iframe标签
    • 二进制流

前端文件下载方法

使用a标签

/*** 文件下载方法 使用a标签* 存在浏览器下载时,太快的话,会取消上次的下载请求* @param {*} href* @param {*} filename*/
export function downloadFile(href, filename) {if (href) {let a = document.createElement('a');// 指定下载的文件名filename && (a.download = filename);a.href = href; //  URL对象const id = 'download' + Math.random();a.id = id;document.body.appendChild(a);a.click(); // 模拟点击URL.revokeObjectURL(a.href); // 释放URL 对象// document.body.removeChild(a);document.getElementById(id).remove();}
}

使用iframe标签

/*** 文件下载方法 使用iframe* 可解决浏览器下载时,太快的话,会取消上次的下载请求* @param {*} url*/
function downloadFileIframe(url) {try {let eleIF = document.createElement('iframe');eleIF.src = url;eleIF.style.display = 'none';document.body.appendChild(eleIF);//防止下载2次setTimeout(function () {document.body.removeChild(eleIF);}, 1000);} catch (e) {console.log(e);}
}

二进制流

将接口完全请求回来的二进制流,在浏览器侧转换成文件下载。这种方案,如果下载的文件特别大的情况会导致浏览器内存特别大,不建议这种方案。

// 将url转成blob地址
fetch(url).then(res => res.blob()).then(blob => {const a = document.createElement('a');// 将链接地址字符内容转变成blob地址a.href = URL.createObjectURL(blob);a.download = filename; // 下载文件的名字document.body.appendChild(a);a.click();// 下载完成后 清除占用的缓存资源window.URL.revokeObjectURL(a.href);document.body.removeChild(a);});

参考文章:
通过动态创建a标签,循环批量下载文件所遇到的问题记录

相关文章:

前端文件下载

这里写自定义目录标题 前端文件下载方法使用a标签使用iframe标签二进制流 前端文件下载方法 使用a标签 /*** 文件下载方法 使用a标签* 存在浏览器下载时,太快的话,会取消上次的下载请求* param {*} href* param {*} filename*/ export function downlo…...

前端成长之路:HTML(3)

在HTML中&#xff0c;有列表标签。列表最大的特点是整齐、简洁、有序&#xff0c;用列表进行布局会更加自由方便。根据使用的情景不同&#xff0c;可以将列表分为三大类&#xff1a;无序列表、有序列表和自定义列表。 无序列表 在HTML中使用<ul>标签定义一个无序列表&a…...

无人机自动机库的功能与作用!

一、无人机自动机库的功能 智能停放与管理 无人机自动机库为无人机提供了一个安全、可靠的停放环境。通过先进的感知技术和安全防护措施&#xff0c;它能够实时监测周围环境&#xff0c;确保无人机免受恶劣天气或潜在风险的侵害。 无人机在机库内可以实现智能停放&#xff0…...

ubuntu 新建脚本shell并增加图标 双击应用实现python运行

1.使用nano创建shell脚本文件 需要在终端窗口中输入“nano”以打开文本编辑器。 nano 在创建脚本文件前&#xff0c;我们要了解脚本文件是如何运行的&#xff1a; 直接运行&#xff1a;直接在终端直接输入需要运行的脚本文件名称&#xff0c;系统或用缺省版本的shell运行脚…...

ANR 分析SOP

遇到ANR问题不要慌&#xff0c;大部分情况下可能是系统or测试手段问题&#xff0c;我们按照如下关键字排查定位 文章目录 1 是否是 heapdump 导致&#xff1f;1.1 dump开始1.2 dump结束 1 是否是 heapdump 导致&#xff1f; 使用 hprof: heap dump 关键词过滤&#xff0c;在d…...

COLA学习之环境搭建(三)

小伙伴们&#xff0c;你们好&#xff0c;我是老寇&#xff0c;上一节&#xff0c;我们学习了COLA代码规范&#xff0c;继续跟老寇学习COLA环境搭建 首先&#xff0c;打开GitHub&#xff0c;搜索 COLA 请给这个COLA项目点个Star&#xff0c;养成好习惯&#xff0c;然后Fork到自…...

CSS输入框动态伸缩动效

前言 下面我们将会做出如下图输入框样式&#xff0c;并且附上组件代码&#xff0c;有特殊需求的可以自行优化同理&#xff0c;下拉框的话只要把el-input标签修改掉即可 MyInput组件 <template><div class"my-input" click.stop"showInput !showInput…...

hbuilder 安卓app手机调试中基座如何设置

app端使用基座 手机在线预览功能 1.点击运行 2.点击运行到手机或者模拟器 3.制作自定义调试基座 4.先生成证书【可以看我上一篇文档写的有】&#xff0c;点击打包 5.打包出android自定义调试基座【android_debug.apk】,【就跟app打包一样需要等个几分钟】 6.点击运行到手…...

探索视觉与语言模型的可扩展性

✨✨ 欢迎大家来访Srlua的博文&#xff08;づ&#xffe3;3&#xffe3;&#xff09;づ╭❤&#xff5e;✨✨ &#x1f31f;&#x1f31f; 欢迎各位亲爱的读者&#xff0c;感谢你们抽出宝贵的时间来阅读我的文章。 我是Srlua小谢&#xff0c;在这里我会分享我的知识和经验。&am…...

sock_recvmsg函数

sock_recvmsg 是一个在 Linux 内核中用于处理接收网络数据的函数。它通常与套接字 (socket) 操作相关,特别是在网络协议栈中用于处理从网络中接收到的数据。这个函数是内核的一部分,提供了一种机制把接收到的数据从网络协议栈转移到用户空间,或者在内核内进一步处理。 以下是…...

HCIA笔记8--DHCP、Telnet协议

1. DHCP介绍 对于主机的网络进行手动配置&#xff0c;在小规模的网络中还是可以运作的&#xff0c;但大规模网络是无力应对的。因此就有了DHCP协议来自动管理主机网络的配置。 DHCP(Dynamic Host Configuration Protocol): 动态主机配置协议&#xff0c;主要需要配置的参数有…...

Scala的单例对象

在Scala中&#xff0c;单例对象是一种特殊的类&#xff0c;它只能有一个实例&#xff0c;并且这个实例在需要时会自动创建。单例对象在Scala中通过object关键字来定义&#xff0c;它类似于Java中的静态成员和方法&#xff0c;但更加灵活和强大。 定义单例对象 以下是定义一个…...

【笔记】分布式任务调度平台XXL-JOB

这篇笔记主要记录以下内容&#xff1a; &#xff08;1&#xff09;第一次启动xxl-job的过程 &#xff08;2&#xff09;模块、文件、数据库&#xff08;表和字段&#xff09;的作用 &#xff08;3&#xff09;极少的源码解读&#xff08;XxlJobConfig&#xff09; 有点像实…...

PDFMathTranslate,PDF多语言翻译,批量处理,学术论文,双语对照(WIN/MAC)

分享一个非常实用的PDF文档翻译项目——PDFMathTranslate。作为一个经常逛GitHub的开发者&#xff0c;我总喜欢翻看各种项目附带的论文&#xff0c;虽然大多时候是瞎研究&#xff0c;但却乐在其中。该项目能够完美保留公式、图表、目录和注释&#xff0c;对于需要阅读外文文献的…...

zerotier实现内网穿透(访问内网服务器)

moo 内网穿透工具 实用工具&#xff1a;zerotier 目录 内网穿透工具 Windows下zerotier安装 ubuntu系统下的zerotier安装 使用moon加速 Windows下zerotier安装 有了网络之后&#xff0c;会给你一个网络id&#xff0c;这个网络id是非常重要的&#xff0c;其它设备要加入…...

Formality:set_svf命令

相关阅读 Formalityhttps://blog.csdn.net/weixin_45791458/category_12841971.html?spm1001.2014.3001.5482 svf文件的全称是Setup Verification for Formality&#xff0c;即Design Compiler提供给Formality的设置验证文件&#xff0c;它的作用是为Formality的指导模式(Gui…...

IDEA报错:无效的源发行版、无效的目标发行版

1. 无效的源发行版 创建项目的时候&#xff0c;会遇见这个报错&#xff0c;原因就是编译的JDK版本与发布版本不一致。 解决方法&#xff1a; 1.1. 找到问题所在地 英文&#xff1a;File -> Project Structure ->Project Settings 中文&#xff1a;文件->项目结构 …...

#渗透测试#红蓝对抗#SRC漏洞挖掘# Yakit插件使用及编写01

免责声明 本教程仅为合法的教学目的而准备&#xff0c;严禁用于任何形式的违法犯罪活动及其他商业行为&#xff0c;在使用本教程前&#xff0c;您应确保该行为符合当地的法律法规&#xff0c;继续阅读即表示您需自行承担所有操作的后果&#xff0c;如有异议&#xff0c;请立即停…...

Scala中求斐波那契数列的第n项

求斐波那契数列的第n项 问题&#xff1a;求 斐波那契数列的第n项 记&#xff1a; 0 1 1 2 3 5 8 13 21 34 55 ... 从第3项开始 f(n) f(n-1) f(n-2) 1.基本情况&#xff08;直接能求的&#xff09;&#xff1a;f(0) 0,f(1) 1 2.递归情况&#xff08;大事化小&#xff0c;自己…...

ORACLE修改序列值为表内某字段(主键)最大值

ORACLE修改序列值为表内某字段&#xff08;主键&#xff09;最大值 想修改序列值&#xff0c;网上基本的都是自己看要加到多少&#xff0c;然后要么调步长&#xff0c;要么删了重建。 想直接用declare使用标量然后调&#xff0c;但是逻辑里面不能有DDL语句。 不过最后解决了 直…...

CosyVoice Docker 部署优化:如何有效降低 CPU 占用率

在语音合成服务日益普及的今天&#xff0c;CosyVoice 凭借其出色的音质和灵活性&#xff0c;成为了许多开发者的选择。然而&#xff0c;当我们将它部署到 Docker 容器中时&#xff0c;一个普遍且棘手的问题随之而来&#xff1a;CPU 占用率居高不下。这不仅导致服务器资源成本飙…...

大模型赋能多尺度空间智能:从具身感知到地球系统建模的跨学科探索

1. 大模型如何重构空间智能的认知框架 当AlphaGo击败人类棋手时&#xff0c;我们惊叹于AI的策略能力&#xff1b;但当大语言模型开始理解三维空间关系时&#xff0c;这标志着机器认知的质变。空间智能的本质是理解物体间的相对位置、距离和运动规律&#xff0c;这种能力对人类而…...

从零推导贝尔曼方程:强化学习中的价值函数与策略优化

1. 强化学习中的价值函数基础 想象你正在玩一个迷宫游戏&#xff0c;每走一步都会消耗体力&#xff0c;找到出口能获得大奖。这时候你会想&#xff1a;**"从当前位置出发&#xff0c;最终能获得多少奖励&#xff1f;"这个问题的答案就是价值函数&#xff08;Value Fu…...

别再只算理论了!聊聊直流稳压电源设计中那些容易被忽略的‘坑’:从二极管热损耗到MOSFET驱动

直流稳压电源实战避坑指南&#xff1a;从二极管选型到PCB布局的工程细节 在实验室里搭建一个能正常工作的直流稳压电源原型并不难&#xff0c;但要让它在工业现场稳定运行上千小时&#xff0c;完全是另一回事。我曾见过太多电源设计在测试台上表现完美&#xff0c;却在量产阶段…...

Windows 11系统优化终极指南:一键清理预装软件与隐私保护

Windows 11系统优化终极指南&#xff1a;一键清理预装软件与隐私保护 【免费下载链接】Win11Debloat 一个简单的PowerShell脚本&#xff0c;用于从Windows中移除预装的无用软件&#xff0c;禁用遥测&#xff0c;从Windows搜索中移除Bing&#xff0c;以及执行各种其他更改以简化…...

从零到一:构建你的第一个智能体应用实战指南

1. 为什么你需要一个智能体应用&#xff1f; 想象一下这样的场景&#xff1a;每天早上你的手机自动整理当天的重要会议和待办事项&#xff0c;根据你的日程推荐最佳出行路线&#xff1b;工作时自动汇总行业动态和关键邮件&#xff1b;晚上回家前提前打开空调并推荐符合你口味的…...

技术方案:SENAITE LIMS实验室信息管理系统完整实施指南

技术方案&#xff1a;SENAITE LIMS实验室信息管理系统完整实施指南 【免费下载链接】senaite.lims SENAITE Meta Package 项目地址: https://gitcode.com/gh_mirrors/se/senaite.lims SENAITE LIMS是一款基于Plone和Python技术栈构建的开源实验室信息管理系统&#xff0…...

如何在Java中使用Thread创建线程

在Java中使用Thread类创建线程是一种常见而直接的方式。你可以继承Thread类并重写其run()定义线程执行的任务的方法。当调用线程对象时start()JVM将为该线程分配资源并自动执行该方法run()方法中的代码。继承Thread类&#xff0c;重写run方法创建线程的第一步是定义一个类继承T…...

PP-DocLayoutV3快速调用:10行Python代码实现文档解析

PP-DocLayoutV3快速调用&#xff1a;10行Python代码实现文档解析 你是不是经常遇到一堆扫描的PDF或者图片文档&#xff0c;想快速提取里面的文字、表格和图片&#xff0c;却不知道从何下手&#xff1f;手动整理不仅费时费力&#xff0c;还容易出错。今天&#xff0c;我就来分享…...

从零开始:CosyVoice 2 声码器入门指南与实战解析

在语音合成的世界里&#xff0c;声码器扮演着“声音雕刻师”的角色。简单来说&#xff0c;它负责将一串抽象的特征&#xff08;比如梅尔频谱&#xff09;转换为我们耳朵能听到的、连续的真实音频波形。没有它&#xff0c;再好的文本转语音模型也只能输出“哑巴”数据。然而&…...