JS下载链接的两种方式
1、window.open()
弹出新窗口下载,需要用户进行交互之后触发,否则会被拦截,Safari始终会拦截弹窗
2、a标签下载
不会触发弹窗,更安全
let a = document.createElement('a')
a.href = '下载链接';
a.download = '文件名称';
document.body.appendChild(a);
a.click();
document.body.removeChild(a);
3、直接JS读取文件流
此方式适用于无法直接获得下载链接,后端直接返回文件流的情况
axios.get(durl,{ responseType: 'blob' }).then(rstream => {let name = '文件名';let b = new Blob([rstream.data]);let URL = window.URL ? window.URL : window.webkitURL;let url = URL.createObjectURL(b);let link = document.createElement('a');link.href = url;link.download = name;document.body.appendChild(link);link.click();URL.revokeObjectURL(url)document.body.removeChild(link)
}).catch(e=>{console.log(e);alert('下载失败!请重试!')
})
相关文章:
JS下载链接的两种方式
1、window.open() 弹出新窗口下载,需要用户进行交互之后触发,否则会被拦截,Safari始终会拦截弹窗 2、a标签下载 不会触发弹窗,更安全 let a document.createElement(a) a.href 下载链接; a.download 文件名称; document.bod…...
手把手教你实现:将后端SpringBoot项目部署到华为云服务器上
前言 前提:有一个后端项目,项目能够运行在本地,可以通过本地访问(localhost) 如果没有可以看这篇:一个基于SpringBoot的后端项目 注册华为云账号 华为云官网 购买云服务器 产品 -> 华为云耀云服务器…...
【红队攻防】从零开始的木马免杀到上线
0、环境配置说明 应该全部使用云服务器完整演示比较好,奈何太穷了买不起服务器,只能用本地环境演示。所需环境如下: 系统环境: CentOS 7 ,Windows 10 软件环境 Cobalt Strike 4.7 , ShellQMaker, 360杀…...
Linux命令行操作:使用“more“命令进行分页显示
文章目录 1. 引言1.1 介绍Linux操作系统和命令行界面什么是Linux操作系统?为什么命令行界面在Linux中如此重要? 1.2 介绍Linux中的分页显示命令分页显示命令的作用与意义不同分页显示命令的比较 2. "more"命令的基本用法2.1 安装和启动"m…...
CentOS下安装MySQL 8.1及备份配置
1 卸载原来的MySQL版本 移除之前部署的mysql软链接 # unlink /etc/init.d/mysql # unlink /usr/bin/mysql2 下载最新的MySQL版本 https://dev.mysql.com/downloads/mysql/8.0.html 我这里直接把地址放在这里:https://cdn.mysql.com//Downloads/MySQL-8.1/mysql…...
【RabbitMQ实战】06 3分钟部署一个RabbitMQ集群
一、集群的安装部署 我们还是利用docker来安装RabbitMQ集群。3分钟安装一个集群,开始。 前提条件,docker安装了docker-compose。如果没安装的话,参考这里 docker-compose文件参考bitnami官网:https://github.com/bitnami/contai…...
(c语言)整形提升
#include<stdio.h> //整形提升 int main() { char a 5; //字符型的内存大小为8个比特位,故在进行加法之类的线性运算时需要整形提升 //00000000000000000000000000000101->5 因为字符型的内存大小不足,故在存放整形时需要裁切 …...
上传文件报错:The temporary upload location [/tmp/tomcat/xxx] is not valid
1.上传附加时报错找不到临时目录 Failed to parse multipart servlet request; nested exception is java.io.IOException: The temporary upload location [/tmp/tomcat/work/Tomcat/localhost/ROOT] is not valid 发生改报错原因为 (1)、SpringBoot项目启动后,系…...
直线模组的品牌有哪些?
中国工业制造业快速发展,工业自动化领域也进入了飞速发展的阶段,直线模组作为工业自动化领域不可缺少的机器人之一,有着重要的不可或缺的作用,在行业内做得好的直线模组品牌有哪些呢? 1、NSK:日本精工株式会…...
零基础学习ESP8266
文章目录 零基础学习ESP8266前言选择硬件如何学习专栏大纲基础部分提高部分 总结 零基础学习ESP8266 前言 最近在空余的时候有用乐鑫的模组,感觉很不错,也决定简单写写。 相信看这篇文章的同学,希望可以熟悉ESP8266这个硬件平台。当然我们…...
基于PYQT5的GUI开发系列教程【二】框架安装和基础环境配置
本文概述 PYQT5是一个基于python的可视化GUI开发框架,具有容易上手,界面美观,多平台部署等优点,作者将通过一系列教程,带领大家从零基础到入门~能够自主实现GUI开发。 作者介绍 作者本人是一名人工智能炼丹师ÿ…...
pg数据库操作,insert(sql)插入一条数据后获返回当前插入数据的id --chatGPT
gpt: 在 PostgreSQL 数据库中,可以使用 INSERT 语句插入一条数据,并通过 RETURNING 子句来返回插入数据的 ID。以下是一个示例 Go 代码来执行这个操作: go package main import ( "database/sql" "fmt" &…...
【数据结构-树】哈夫曼树
💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:kuan 的首页,持续学…...
HarmonyOS 4.0 实况窗上线!支付宝实现医疗场景智能提醒
本文转载自支付宝体验科技,作者是蚂蚁集团客户端工程师博欢,介绍了支付宝如何基于 HarmonyOS 4.0 实况窗实现医疗场景履约智能提醒。 1.话题背景 8 月 4 日,华为在 HDC(华为 2023 开发者大会)上推出了新版本操作系统…...
【响应式布局】
响应式布局 1 什么是响应式布局2 响应式布局的5种实现方案2.1 百分比布局2.2 媒体查询布局2.3 rem响应式布局2.4 vw / vh响应式布局2.5 flex弹性布局 1 什么是响应式布局 响应式布局就是一个网站能够兼容多个终端——而不是为每个终端做一个特定的版本。这个概念是为解决移动互…...
Spring面试题23:Spring支持哪些事务管理类型?Spring框架的事务管理有哪些优点?你更倾向用哪种事务管理类型?
该文章专注于面试,面试只要回答关键点即可,不需要对框架有非常深入的回答,如果你想应付面试,是足够了,抓住关键点 面试官:Spring支持哪些事务管理类型? Spring 支持以下几种事务管理类型: 编程式事务管理:通过在代码中显式地使用事务管理 API(如 TransactionTempla…...
Leetcode—— LCR 122. 路径加密
LCR 122. 路径加密 假定一段路径记作字符串 path,其中以 "." 作为分隔符。现需将路径加密,加密方法为将 path 中的分隔符替换为空格 " ",请返回加密后的字符串。 示例 1: 输入:path "a.ae…...
缓冲区溢出漏洞分析
一、实验目的 熟悉软件安全需求分析方法,掌握软件安全分析技术。 二、实验软硬件要求 1、操作系统:windows 7/8/10等 2、开发环境:VS 6.0(C)、OllyDbg 三、实验预习 《软件安全技术》教材第3章 四、实验内容&#…...
【高阶数据结构】红黑树(C++实现)
⭐博客主页:️CS semi主页 ⭐欢迎关注:点赞收藏留言 ⭐系列专栏:C进阶 ⭐代码仓库:C进阶 家人们更新不易,你们的点赞和关注对我而言十分重要,友友们麻烦多多点赞+关注,你们的支持是我…...
算力百川汇蓝海,商海荡漾绘宏图
算力百川汇蓝海 01 新兴技术呼唤算力 崭新时代逐浪前,科技浪潮涌向天。 人工智能、数字孪生、元宇宙等新兴技术的迅速发展,引爆全球算力需求的规模式增长。尤其,以ChatGPT为代表的人工智能技术发展,引发了全球算力需求的进一步增长…...
ComfyUI模型管理终极指南:从零基础到高效工作流的完整教程
ComfyUI模型管理终极指南:从零基础到高效工作流的完整教程 【免费下载链接】ComfyUI 最强大且模块化的具有图形/节点界面的稳定扩散GUI。 项目地址: https://gitcode.com/GitHub_Trending/co/ComfyUI ComfyUI作为最强大且模块化的AI图像生成工具,…...
从零开始:3小时掌握Arduino ESP32开发板完整安装与配置指南 [特殊字符]
从零开始:3小时掌握Arduino ESP32开发板完整安装与配置指南 🚀 【免费下载链接】arduino-esp32 Arduino core for the ESP32 项目地址: https://gitcode.com/GitHub_Trending/ar/arduino-esp32 想要快速上手ESP32物联网开发吗?无论你是…...
HsMod:炉石传说体验增强插件技术解析与应用指南
HsMod:炉石传说体验增强插件技术解析与应用指南 【免费下载链接】HsMod Hearthstone Modify Based on BepInEx 项目地址: https://gitcode.com/GitHub_Trending/hs/HsMod HsMod作为基于BepInEx框架开发的炉石传说插件,通过非侵入式技术手段重构游…...
YOLOv8在智慧农业中的落地实践:如何提升植物病害检测准确率到90%+
YOLOv8在智慧农业中的落地实践:如何提升植物病害检测准确率到90% 在智慧农业领域,植物病害的早期识别与精准诊断一直是技术攻关的重点。传统人工检测方式不仅效率低下,而且受限于专家经验,难以实现规模化应用。随着计算机视觉技术…...
如何让零基础快速掌握3D资产生成:颠覆式AI工具Hunyuan3D-2实战指南
如何让零基础快速掌握3D资产生成:颠覆式AI工具Hunyuan3D-2实战指南 【免费下载链接】Hunyuan3D-2 High-Resolution 3D Assets Generation with Large Scale Hunyuan3D Diffusion Models. 项目地址: https://gitcode.com/GitHub_Trending/hu/Hunyuan3D-2 技术…...
别再只靠密码了!手把手教你用Gpg4win给邮件和文件加把‘数字锁’(附Kleopatra实战截图)
别再只靠密码了!手把手教你用Gpg4win给邮件和文件加把"数字锁" 你是否经常担心重要文件被他人窥探?或是害怕商务邮件在传输过程中遭人篡改?在这个数据泄露频发的时代,仅靠密码保护敏感信息已经远远不够。今天ÿ…...
Excel 修改单元格值的内核操作原理
你现在直接看穿了 Excel 的底层本质!你说的 100% 正确!而且是最底层、最硬核、最真实的原理!我给你用最直白、最硬核、程序员视角完整还原一遍,你马上彻底通透:🔥 终极结论(你说的完全对&#x…...
MinerU-Diffusion:文档OCR解码提速3.2倍新方案
MinerU-Diffusion:文档OCR解码提速3.2倍新方案 【免费下载链接】MinerU-Diffusion-V1-0320-2.5B 项目地址: https://ai.gitcode.com/OpenDataLab/MinerU-Diffusion-V1-0320-2.5B 导语 MinerU-Diffusion框架通过将文档OCR重构为逆渲染问题,采用并…...
SPI Flash时序参数详解:如何用Synopsys VIP验证Micron芯片的HOLD时序
SPI Flash时序验证实战:Synopsys VIP在Micron芯片HOLD时序分析中的应用 当硬件验证工程师面对SPI Flash芯片时,时序参数的精确验证往往是项目成败的关键。Micron作为主流存储芯片供应商,其SPI Flash产品广泛应用于嵌入式系统和FPGA设计中&…...
移动开发实战:Flutter集成LongCat-Image-Edit实现宠物滤镜APP
移动开发实战:Flutter集成LongCat-Image-Edit实现宠物滤镜APP 1. 引言 你有没有想过,给你的宠物猫拍张照片,然后让它变成一只熊猫医生或者小老虎?现在这不再是幻想!通过Flutter框架和LongCat-Image-Edit模型的结合&a…...
