vue实现文件下载

article/2025/4/25 18:36:19

vue中文件下载

前言

Vue浏览器文件下载最简单的方法就是用a链接实现,然后加一个download属性。让后端返回[blob]文件格式,需要传递 responseType: ‘blob’

一、使用步骤

展示文件,文件点击后查看方法为handlePreview

<span style="margin-top:50px;">附件</span><el-upload action=""list-type="text":on-preview="handlePreview"disabled:file-list="fileList"><i class="el-icon-plus"></i></el-upload>

二、使用步骤

1.设置文件返回类型

config.responseType='blob'

如图所示:
在这里插入图片描述

2.前端请求接口方法

handlePreview(file) {let data={}let typeArray=file.url.split(".")let type=typeArray[typeArray.length-1]debuggerdata.url=file.urldata.name=file.namefileupload._getDownLoad(data).then((res) => {let url = window.URL.createObjectURL(new Blob([res]))let link = document.createElement('a')link.style.display = 'none'link.href = urllink.setAttribute('download', file.name)document.body.appendChild(link)link.click()})}

3.后端返回文件接口

@RequestMapping(value = "/getDownLoad", method = RequestMethod.POST)public void getDownLoad(HttpServletResponse response,@RequestBody Imgurl imgurl) throws IOException {FileInputStream inputStream = null;try{File file = new File(imgurl.getUrl());inputStream = new FileInputStream(file);ByteArrayOutputStream os = new ByteArrayOutputStream();byte[] buffer = new byte[1024];int length;while ((length = inputStream.read(buffer)) != -1) {os.write(buffer, 0, length);}byte[] data = os.toByteArray();response.resetBuffer();response.resetBuffer();response.setHeader("Content-Disposition", "attachment");response.addHeader("file-name",URLEncoder.encode(imgurl.getName(), "UTF-8"));response.addHeader("Content-Length", "" + data.length);response.setContentType("application/octet-stream; charset=UTF-8");IOUtils.write(data,response.getOutputStream());}catch (IOException e){e.printStackTrace();}finally {if(inputStream != null){inputStream.close();}}}

总结

今天遇到一个vue下载文件的开发功能,按照正常方法请求一直报错,经过请教大神,用a链接简单的方法实现,本文仅仅简单记录自己的开发过程。


http://chatgpt.dhexx.cn/article/0xOD0vmC.shtml

相关文章

vue学习之一:下载vue-cli项目

这几周一直辗转在vue官网和各大博客搜索关于vue项目实战的例子。学的实在是零零碎碎的。不过总算在对于vue项目搭建有个基本认知&#xff0c;于是直接拿起以前做过的项目进行改版了&#xff0c;接下来是从怎么搭建vue2.xvue-router项目实战写的一些列文章。我的开发环境都是基于…

下载vue脚手架@vue/cli(详解)

1.首先到官网下载node.js 2.在自己的电脑查看是否下载成功 使用window加r输入cmd使用node -v 查看node.js是否下载成功 3.使用npm下载yarn 注意&#xff1a;因为下载node.js中会自动帮你下载npm&#xff0c; npm install -g yarn 使用yarn -v 如果显示有版本号则下载成功…

vue.js中文官网下载vue.js失败了?

访问vue官网 https://v2.cn.vuejs.org/v2/guide/installation.html下载vue.js&#xff0c;页面直接报错404&#xff0c;只需要切换到英文版&#xff0c;重新下载即可成功。 或者直接访问以下地址: https://v2.vuejs.org/v2/guide/installation.html#Direct-lt-script-gt-Includ…

如何下载vue.js

vue官网&#xff1a;https://v2.vuejs.org/ 1、第一步 2、第二步 3、 第三步

idea 下载vue 插件

1.先查看自己的idea 的版本 2.然后去官网 https://plugins.jetbrains.com/plugin/9442-vue-js/versions 下载跟自己idea 版本对应的vue插件 一定要对应不然 报版本不对应问题 类似于&#xff1a; 下载完之后 把文件放在 相应位置 我是放在了idea的插件位置 一般是在 idea的…

Vue.js的下载和调用

Vue支持双向绑定&#xff0c;非常不错。将视图层和模型层分离开。是基于MVVM模型&#xff0c;模型-视图-视图模型 。支持ES6。 目录 一、在官网下载vue.js文件 二、声明Vue对象 三、Vue修饰符 1. v-once。 使{{}}内的值不能被修改 2.v-pre 。{{}}将不会被Vue替换&#xff0c…

操作系统课后答案第三章

**操作系统课后答案**第三章 处理及调度与死锁 1、高级调度与低级调度的主要任务是什么? 为什么要引入中级调度? 答&#xff1a;高级调度的主要任务&#xff1a;用于决定把外存上处于后背队列中的哪些作业调入内存&#xff0c;并为它们创建进程&#xff0c;分配必要的资源&am…

第1章 操作系统引论课后答案

第1章 操作系统引论 1.1 简答题参考答案 1&#xff0e;在计算机系统上配置 OS&#xff08;operating system&#xff0c;操作系统&#xff09;的目标是什么&#xff1f;作用主 要表现在哪几个方面&#xff1f; 【参考答案】在计算机系统上配置OS&#xff0c;主要目标是实现&a…

操作系统解答题

操作系统 **1.平均等待时间问题****2.同步互斥问题****3.分页系统地址转换****4.LRU&#xff08;最近最久未使用&#xff09;置换算法**5.银行家算法 1.平均等待时间问题 有5个进程P1&#xff0c;P2&#xff0c;P3&#xff0c;P4&#xff0c;P5&#xff0c;它们同时依次进入就…

操作系统习题(有答案)

最近在学习os在网上找到的很好的资料&#xff0c;希望对大家有用~ 第1章 一、填空 1&#xff0e;计算机由 硬件 系统和 软件 系统两个部分组成&#xff0c;它们构成了一个完整的计算机系统。 2&#xff0e;按功能划分&#xff0c;软件可分为 系统 软件和 应用 软件两种。 3&am…

【《操作系统慕课版》合集】期末复习 + 核心算法整理 + 课后答案

所有章节归类好了概念、算法&#xff0c;同时课后的简答题也一并给出了答案。祝各位复习愉快~ 整理不易希望能点个赞~ 目录 第一章 操作系统概述 第二章 进程的描述与控制 第三章 处理机调度与死锁 第四章 进程同步 第五章 存储器管理 第六章 虚拟存储器 第七章 输入输…

计算机操作系统习题

作业一 操作系统的主要功能有&#xff08; &#xff09;。 &#xff08;3.0分&#xff09; A、进程管理、存储器管理、设备管理、处理机管理 B、虚拟存储管理、处理机管理、进程管理、文件管理 C、处理机管理、存储器管理、设备管理、文件管理 D、进程管理、中断管理、设备管理…

【第一章 | 操作系统概述】《操作系统 慕课版》课后答案 + 复习

目录 | 本章概念 | 本章算法 单道批与多道批的图像绘制 利用率的计算与分析 | 课后简答题 | 本章概念 1.OS的作用 作为用户与计算机硬件系统之间的接口 | 计算机系统资源的管理者 | 对计算机资源的抽象。OS的目标是&#xff1a;方便性 有效性 可扩充性 开放性 2.虚拟机…

操作系统原理及应用复习(第2版)大部分课后习题

操作系统原理及应用复习 第一章操作系统概论 1.1 什么是操作系统,有哪些基本功能和特点&#xff1f; 操作系统是覆盖在裸机上的第一层软件,他直接控制,管理各种资源。基本功能&#xff1a; 提供人机接口 命令级接口程序级接口图形界面 管理计算机资源 处理机管理存储管理设备…

TCP头部和封装

TCP在IP数据报中的封装 IP头部 TCP头部 可看到&#xff0c;IP数据报即 P头部协议 TCP报文段&#xff0c;这也称为TCP在IP数据报中的封装。有趣的是&#xff0c;TCP报文段中的数据部分并不是必须的&#xff0c;当一个连接被建立和终止时&#xff0c;交换的报文段只包含了TCP头…

3.2.3 使用tcpdump观察TCP头部信息(补充TCP协议的常用知识)

使用tcpdump观察TCP头部信息和三次握手四次挥手 前言实验开始1. 延迟确认2. 序号&#xff08;seq&#xff09;和确认号&#xff08;ack&#xff09;之间的关系3.TS val和ecr的关系4. TCP状态转移&#xff08;书上p41-p42原话&#xff09;5. FIN_WAIT_2状态(半关闭状态)6. TIME_…

从wireshark抓包看TCP头部时间戳

本文于2020年8月23日首发于个人公众号“码农的修炼之道”&#xff0c;欢迎关注。 不知道大家有没有注意到&#xff0c;wireshark抓取tcp报文的时候&#xff0c;大部分时候的报文是如下图所示的&#xff0c;其中带了Seq&#xff0c;Win和Len字段&#xff0c;分别对应了报文序列号…

TCP、UDP、IP头部结构

数据传输在TCP/IP网络模型中&#xff0c;经过一层便会添加一层头部&#xff0c;其中TCP(网络传输协议)&#xff0c;UDP处于传输层&#xff0c;IP(网间协议)处于网络层。 数据进入协议栈的封装过程 TCP/IP协议族 TCP 传输控制协议 应用程序之间通信 建立的全双工通信UDP 用户数…

TCP头部结构

TCP头部信息出现再每个TCP报文段中&#xff0c;用于指定通信的 源端端口&#xff0c;目的端口&#xff0c;管理TCP连接等。 1、TCP固定头部结构 16位端口号&#xff1a;告知主机该报文段是来自哪里&#xff08;源端口&#xff09;以及传给哪个上层协议或应用程序&#xff08;目…

TCP头部解析

一一解析 SourcePort(源端口)和DestinationPort(目的端口):各占2个字节,端口是运输层与应用层的服务接口,运输层的复用和分用功能都要通过端口才能实现。 注:TCP的包是没有IP地址的,那是IP层上的事。但是有源端口和目标端口。 SequenceNumber(序号):占4个字节,TCP连…