常见的下载方式

news2024/11/26 4:27:53

一. 使用 window.open()

  1. 使用场景
// 1. 先封装一个实习下载的函数
export const download = (path) => {
	window.open('下载的接口,例如:/fs/download?path' + path)
}
// 2. 使用:在需要下载的地方调用download函数,传入下载的url
download(path)
  1. 可能出现的问题
    • 页面闪烁
    • 如果是嵌入在别的模块中可能无法下载
  2. 解决办法:造成上述问题的原因都是window.open()默认打开一个新窗口
export const download = (path) => {
	window.location.href = '下载的接口,例如:/fs/download?path' + path //不闪屏
}

二. 使用 a 标签

  1. a标签download下载
 <!-- href是下载资源的相对路径 -->
 <a href="./margin塌陷1.jpg" download target="_blank">点击我下载</a>

可以看到图片、markdown、word都可以正常下载
在这里插入图片描述

  1. a标签 + fetch实现下载
// 封装download函数
export const download = (href, method = 'GET', data = null, newName = '') => {
  let params = {
    method,
    header: {'Content-Type': 'application/json;charset=utf-8' },
  }
  if(method == 'post' || method == 'POST'){
     params['body'] = JSON.stringify(data)
  }
  fetch(href, params).then(res => {
    res.blob().then(blob => {
      let a = document.createElement('a')
      document.body.appendChild(a)
      let url = window.URL.createObjectURL(blob)
      a.href = url
      a.download = newName ? newName : (res.headers.get('filename') ? decodeURI(res.headers.get('filename')) : 'file')
      a.click()
      window.URL.revokeObjectURL(url)
      a.remove()

      this.$message.success('下载成功!')
    })
  }).catch(() => {
    this.$message.error('下载失败!')
  })
}

// 引用下载
download('/fs/download?path=' + path, 'GET', null, filename)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/949175.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Data Rescue Professional for Mac:专业的数据恢复工具

在数字化时代&#xff0c;我们的生活和工作离不开电脑和存储设备。但是&#xff0c;意外情况时常发生&#xff0c;例如误删除文件、格式化硬盘、病毒攻击等&#xff0c;这些都可能导致重要的数据丢失。面对数据丢失&#xff0c;我们迫切需要一款可靠的数据恢复工具。今天&#…

ASEMI整流桥GBU816的原理和应用

编辑-Z 摘要&#xff1a;整流桥GBU816是一种用于将交流电转换为直流电的电子元器件。本文将从原理、结构、应用以及优点等四个方面对整流桥GBU816进行详细的阐述。 1、整流桥GBU816的原理 整流桥GBU816由四个二极管组成&#xff0c;分别连接在一个桥形电路中。当输入交流电通…

TikTok选品分析:越南7月家电销量第一,这款吸尘器凭什么?

随着经济发展&#xff0c;人们的生活向智能化、便捷化发展&#xff0c;消费者的消费喜好也随之产生变化。家电也不例外&#xff0c;传统吸尘器因其体积较大、清洁不便正逐渐被淘汰。取而代之的是手持吸尘器&#xff0c;其凭借轻便、多功能的特点迅速赢得消费者的喜爱。 过去一…

腾讯云国际代充-GPU服务器安装驱动教程NVIDIA Tesla

腾讯云国际站GPU 云服务器是基于 GPU 的快速、稳定、弹性的计算服务&#xff0c;主要应用于深度学习训练/推理、图形图像处理以及科学计算等场景。 GPU 云服务器提供和标准腾讯云国际 CVM 云服务器一致的方便快捷的管理方式。 GPU 云服务器通过其强大的快速处理海量数据的计算性…

【Python】利用python-docx生成word版本学生花名册

如图&#xff0c;可以用python创建word文档&#xff0c;生成一个学生的花名册。生成的过程&#xff1a;先下载第三方依赖包&#xff0c;安装依赖包&#xff0c;然后引入依赖文件&#xff0c;创建docx文件&#xff0c;添加标题&#xff0c;创建表头&#xff0c;创建表格正文&…

创作纪念日-我的第1024天

机缘 不知不觉已经成为创作者的第1024天啦… … 刚开始接触博客的初衷就是为了记笔记&#x1f4d2;、记总结&#x1f4dd;&#xff0c;或许对于当时就等同于是为了找工作。坚持学习并持续输出博客一年后&#xff0c;这时我发现再写博客&#xff0c;不在是为了找一份工作&…

比亚迪宋L高调亮相成都车展,媒介盒子多家媒体助阵

哈喽,大家好,今天媒介盒子小编又来跟大家分享媒体推广的干货知识了,本篇分享的主要内容是:比亚迪宋L的营销策略。 比亚迪宋L又于2023年8月25日在成都车展上首次亮相&#xff0c;该车将配备比亚迪黑科技中的CTB技术、云辇-C底盘系统和iTAC系统等&#xff0c;预计将在今年第四季…

python教程:如何写类?

目录标题 前言类的定义知识点扩展&#xff1a;构建和初始化1. __ new__(cls,[…)2. __ init__(self,[…)3. __ del__(self) 尾语 前言 嗨喽~大家好呀&#xff0c;这里是魔王呐 ❤ ~! python更多源码/资料/解答/教程等 点击此处跳转文末名片免费获取 类的定义 Python中&#…

正中优配:A股早盘三大股指微涨 华为概念表现活跃

周三&#xff08;8月30日&#xff09;&#xff0c;到上午收盘&#xff0c;三大股指团体收涨。其间上证指数涨0.06%&#xff0c;报3137.72点&#xff1b;深证成指和创业板指别离涨0.33%、0.12%&#xff1b;沪深两市合计成交额6423.91亿元&#xff0c;总体来看&#xff0c;两市个…

一文搞懂CAN和CAN FD总线协议

一、CAN与CAN FD的概念 1、CAN是什么 控制器局域网总线&#xff08;CAN&#xff0c;Controller Area Network&#xff09;是一种用于实时应用的串行通讯协议总线&#xff0c;它可以使用双绞线来传输信号&#xff0c;是世界上应用最广泛的现场总线之一。 CAN协议用于汽车中各种…

正中优配:创业板怎么开通

作为我国资本市场的一个重要组成部分&#xff0c;股票市场一直是出资者追逐高收益的抢手挑选。而近年来&#xff0c;创业板作为我国股票市场上的一颗新星&#xff0c;备受创业者、出资者的关注。但关于一些新手出资者来说&#xff0c;可能对“创业板怎样注册”这个问题还比较陌…

一文看懂开发者需要了解的信创概念

信创这个概念对于大家来说并不陌生&#xff0c;至少我们在海量的新闻中会时不时的听到这个概念&#xff0c;特别是在西方国家对中国进行技术封锁加剧时&#xff0c;证券市场中它还会时不时成为一个风口板块。 其实“信创”理解起来也并不困难&#xff0c;就像它的字面意思&…

手把手教你Jenkins整合Jmeter实现自动化接口测试

01、在机器上安装jmeter 下载&#xff1a;http://jmeter.apache.org/download_jmeter.cgi 这里我用了一台Windows安装jmeter用来写接口测试的脚本&#xff0c;启动前修改jmeter.properties 中 jmeter.save.saveservice.output_format值为xml。 编写接口测试脚本&#xff1a; …

外贸软件鞋类行业管理难点及解决方案

鞋子作为一种常见的商品&#xff0c;在出口外贸中占据着重要的地位。近几年&#xff0c;随着我国经济的建设步伐的不断加快&#xff0c;对外贸易活跃度也随之得以提升&#xff0c;中产阶层的消费人群及需求量都在不断增长&#xff0c;其中鞋业也经历了急剧的发展&#xff0c;成…

汽车自适应巡航系统控制策略研究

目 录 第一章 绪论 .............................................................................................................................. 1 1.1 研究背景及意义 ..........................................................................................…

C# 如何将使用的Dll嵌入到.exe应用程序中?

文章目录 前言详细实操简要步骤 前言 有没有想自己开发的exe保留一点神秘&#xff0c;不想让他人知道软件使用了哪些dll; 又或许是客户觉得一个软件里面的dll文件太多了&#xff0c;能不能简单一点&#xff0c;直接双击.exe就可以直接运行了&#xff0c;别搞那么多乱七八糟的。…

Android开发仿美团购物左右联动列表

概述 Android开发左右联动列表&#xff0c;仿照美团外卖点餐时&#xff0c;左右列表可以联动。 详细 Android开发仿美团购物左右联动列表 概述 左右联动列表是仿照美团外卖点餐时&#xff0c;左右列表可以联动。比如右边列表会有小项对应左边的&#xff0c;滑动时会置顶&a…

数字IC验证高频面试问题整理—附答案(三)

最近大家无不在讨论IC秋招&#xff0c;秋招想必缺的就是面试题目了。这不就来了~ 共150道验证高频面试题整理~含答案&#xff08;文末可领取全部题目&#xff09; Q1.二进制码、格雷码、独热码的特点 二进制码&#xff1a;基本的机器语言&#xff0c;每一位只能是0或1&…

K8s:一文带你认知 CRI,OCI,容器运行时,Pod 之间的关系

写在前面 博文内容整体结构为结合 华为云云原生课程 整理而来,部分内容做了补充课程是免费的&#xff0c;有华为云账户就可以看&#xff0c;适合理论认知&#xff0c;感觉很不错。有需要的小伙伴可以看看&#xff0c;链接在文末理解不足小伙伴帮忙指正 对每个人而言&#xff0c…

<硬件设计> 阻抗设计(一) 阻抗及其模型介绍

目录 01 阻抗相关介绍 阻抗(Electrical Impedance) 阻抗匹配(Impedance Matching) 常规的阻抗线(Impedance Matching) 02 微带线与带状线 微带线(MicroStrip) 带状线(Stripline) 03 文章总结 大家好&#xff0c;这里是程序员杰克。一名平平无奇的嵌入式软件工程师。 在…