vue 前后端分离下载文件

news/2024/11/27 9:33:02/

vue 前后端分离下载文件

1.概述

这篇文章介绍下vue开发下载文件功能

2.下载文件方式

下载文件有两种方式,一个是通过a标签下载文件。一个是通过调用下载接口下载文件。
两种方式下载文件区别:

  • a标签通过链接下载文件,如果遇到图片浏览器可以解析,那么就不会下载而是直接在浏览器中打开。excel、word、zip等文件浏览器不能解析的则会下载文件。
  • 调用后端接口下载文件,接口返回的是字节流,因此浏览器不能解析,所有文件格式都会下载。

2.1.a标签方式下载文件

在vue页面的methods方法对象中创建一个方法,编辑下载文件代码。

methods: {downloadFile(fileData) {// 获取下载文件内容let fileName = fileData.fileNamelet fileUrl = fileData.fileUrllet lastName = fileUrl.substring(fileUrl.lastIndexOf("."))// 创建a标签const link = document.createElement("a")link.download = lastName// 下载链接地址link.href = fileUrl// 新标签中下载link.target = "_blank"link.style.display = "none"// 将a标签添加到dom中document.body.appendChild(link)// 下载文件link.click()// 从dom中移除a标签document.body.removeChild(link)}
}

2.2.接口方式下载文件

在vue页面的methods方法对象中创建一个方法,编辑下载文件代码。

  • 首先请求下载接口,获取返回的字节流。
  • 通过a标签方式从接口返回的字节流下载文件。
methods: {downloadEvt(fileData) {// 1.请求下载接口,接口返回字节流request({url: "/api/file/download",method: "get",params: {fileId: id},// 设置响应格式为 multipart/form-dataresponseType: "blob",}).then((res) => {// 获取下载文件内容let fileName = fileData.fileNamelet fileUrl = fileData.fileUrllet lastName = fileUrl.substring(fileUrl.lastIndexOf("."))// 创建a标签const link = document.createElement("a")link.download = lastName// 2.使用接口返回的数据下载link.href = URL.createObjectURL(res)// 新标签中下载link.target = "_blank"link.style.display = "none"// 将a标签添加到dom中document.body.appendChild(link)// 下载文件link.click()// 从dom中移除a标签URL.removeObjectURL(link.href)document.body.removeChild(link)})}
}

http://www.ppmy.cn/news/9758.html

相关文章

详解回调函数

目录 前言 一、 实现一个简单的计算器 1.1 - 代码一 1.2 - 代码二 二、qsort 函数的介绍 三、改进冒泡排序函数 前言 回调函数就是一个通过函数指针调用的函数。如果把函数的指针(地址)作为参数传递给另一个函数,当这个指针被用来调用其…

【数据结构】LinkedList模拟实现与简单使用

文章目录模拟实现LinkedListLinkedList的简单使用LinkedList的一些方法LinkedList的遍历简单对比一下LinkedList和ArrayList模拟实现LinkedList 在上一篇的博客中,我们讲解了链表的基础知识,并且模拟实现了一个无头单向不循环链表,链表的基础…

基于opencv的数字识别系统

一、目的 想要实现的功能:帮助我们在泵中扫描燃油,并在应用程序中输入燃油信息。 所需技术:①python程序对于拍摄的汽油泵的图像,尝试从中读取数字。——opencv实现。②先使用python对其进行原型设计,然后将代码转换…

分享一下我3个月收割大厂offer的一些经验总结

前几天,有位老粉私信我,说看到某95后学弟晒出阿里P7的工资单,他是真酸了…想狠补下技术,努力冲一把大厂。 为了帮到他,也为了大家能在最短的时间内做面试复习,我把软件测试面试系列都汇总在这一篇文章了。…

2023最新网络安全自学路线,内容涵盖3-5年技能提升

前言 先预祝大家新年快乐! 【一一帮助网络安全入门和提升点这里一一】 01 什么是网络安全 网络安全可以基于攻击和防御视角来分类,我们经常听到的 “红队”、“渗透测试” 等就是研究攻击技术,而“蓝队”、“安全运营”、“安全运维”则研究…

C51单片机基础之串口编程实战

目录 一、串口编程寄存器分析 1、PCON : 电源控制寄存器 2、SCON:串行控制寄存器 二、自己实现串口初始化编程 三、发送一串字符串给到PC端编程 四、PC发送指令控制LED编程 五、串口中断实时控制LED编程 1、串口中断的中断号:interrupt4 2、串口…

Linux系统的优缺点

相比 Windows 系统,Linux 系统有更好的稳定性,那么除此之外,Linux 系统还有那些优点(或者不足)呢?一、大量的可用软件及免费软件Linux 系统上有着大量的可用软件,且绝大多数是免费的&#xff0c…

数据的存储【详解】【强烈推荐!!!】

数据的存储1. 数据类型介绍1.1 类型的基本归类2. 整型在内存中的存储2.1 原码、反码、补码2.2 大小端介绍2.3 练习3. 浮点型在内存中的存储3.1 一个例子3.2 浮点数存储规则1. 数据类型介绍 基本的内置类型、大小(字节)(VS编译器)…