前端实现下载文件(处理后端返回的二进制流)

SpringBoot 普通文件下载 + 前端获取后端返回的文件流并下载 ⏹SpringBoot 普通文件下载 + 前端获取后端返回的文件流并下载 阅读详情

参考连接:https://blog.youkuaiyun.com/qq_45494634/article/details/119108908

需求描述

点击按钮向后端请求数据,实现文件下载。

请求结果

在这里插入图片描述

处理

1 接收二进制流

正常情况下axios 不会处理二进制数据,即会去接收但是不会去处理,需要在请求的时候设置 responseType: ‘blob’
在这里插入图片描述

Blob代表了一种不变的、原数据的类文件对象,它们可以当作text或者binary data或者转换为可读取的流(ReadableStream)。所以它的方法可以被用来处理数据。

2 下载处理

<template>
      <button @click="doDownload"></button>
</template>

<script setup>
import { download } from '../axios/task'

function doDownload () {
  download()
    .then((res) => {
      const blob = new Blob([res.data])
      const fileName = '报表' + '.xlsx'
      // 允许用户在客户端上保存文件
      if (window.navigator.msSaveOrOpenBlob) {
        navigator.msSaveBlob(blob, fileName)
      } else {
        const link = document.createElement('a')
        link.href = window.URL.createObjectURL(blob)
        link.download = fileName
        link.click() // 模拟在按钮上实现一次鼠标点击
        window.URL.revokeObjectURL(link.href) // 释放 URL 对象
      }
	     console.log(res)
    })
    .catch((error) => {
    	console.log(error)
    })
}
</script>
前端下载文件夹,blob处理二进制流 阅读详情

相关推荐

后端给你返回文件流,前端实现下载文件

后端返回的文件流,前端如何实现下载导出文件

qq_45018844的博客 1万+

后端返回文件流,前端怎么导出、下载(8种方法可实现)

这些方法可以根据具体的需求和项目环境选择使用。需要注意的是,后端返回的文件流需要正确设置Content-Disposition响应头,以指定文件的名称和下载方式。这些方法提供了多种选择来实现前端导出和下载后端返回的文件流。根据具体的需求和项目环境,选择适合的方法进行实现。

一步一个脚印,踏实努力,向着目标前进 3万+

Kylin系统离线环境下的dpkg依赖包高效部署指南

本文详细介绍了在Kylin系统离线环境下高效部署dpkg依赖包的完整方案,包括预下载依赖包、构建本地APT仓库以及高级故障排查技巧。通过实战经验和优化建议,帮助用户解决依赖地狱问题,提升部署效率,特别适用于银河麒麟V10等内网环境。

weixin_29051245的博客 384

后端返回文件流,前端怎么导出、下载

工作中肯定有很多导出excel、下载文件这种功能。一般都是后端做好,我们去请求对应的接口就行了,前端还需要做一些处理就可以实现导出、下载功能了。具体怎么操作呢,我们来看看!

cwb_2120的博客 1万+

AOSP14 Launcher3——手势上滑关键类AbsSwipeHandler解析

通过精密的事件监听、状态管理和对系统动画 API 及 Launcher 内部组件的协调,实现了复杂而流畅的手势导航体验。它的抽象设计允许子类(如。是 Quickstep (Launcher3 的手势导航实现) 中处理。的核心逻辑抽象基类。这个非常核心且复杂的类。)定制特定的回家动画逻辑。好的,我们来深入分析。

Micheal_Yang's Blog 1519

【Java】对接微信转账到零钱接口 Java微信商家转账 apiV3(该踩的雷都踩了)

配置apiv3依赖java代码。

Moonhwa的博客 4316

前端实现文件下载的方法;以及后端返回 blob 文件流,进行展示。

前端实现文件下载的方法;以及后端返回 blob 文件流,进行展示。

~~~ 6886

Agent 长期记忆三代演进:从 RAG 到 Memory Graph,mem0 / Zep / LangMem / Letta 深度横评

文章摘要 2026年,Agent长期记忆技术迎来关键突破,OpenAI、Anthropic等厂商通过扩大上下文窗口和推出记忆工具,推动长期记忆从工程补丁发展为独立技术层。本文通过分析三代记忆架构演进(RAG→结构化Fact→MemoryGraph)和四大方案(mem0/Zep/LangMem/Letta)的8维度横评,揭示以下核心观点: 长上下文≠长期记忆:128K上下文如同RAM,仍需硬盘式记忆层筛选和结构化存储,避免“Context Rot”导致的准确率下降。 三代架构演进: Gen1(RAG):向量检

LDZKKJ的博客 1400

【vue】将后端返回的二进制流前端进行处理实现下载文件

vue 项目,处理后端传过来的二进制流文件,实现下载功能

weixin_45184157的博客 5545

37、基于铁电场效应晶体管(FeFET)的片上深度神经网络(DNN)直接反馈对齐训练

本文提出了一种基于铁电场效应晶体管(FeFET)的深度神经网络(DNN)训练加速器架构,结合直接反馈对齐(DFA)算法和FeFET的独特物理特性,以解决当前DNN训练中反向传播(BP)算法带来的高计算开销、复杂数据依赖和高能耗问题。通过设计基于FeFET的MVM引擎、低功耗ADC和随机数生成器(RNG),该架构在速度和功率效率方面相比现有基于ReRAM的加速器分别提升了1.3倍和2.5倍。研究为未来高效能AI训练硬件的发展提供了新的思路和实现路径。

wine的专栏 162

Unet++改进33:添加ConvolutionalGLU(2024最新改进方法)|紧凑的网络结构和高效的运算

由于残差连接的深度退化效应,许多依赖堆叠层进行信息交换的高效视觉变形模型往往不能形成足够的信息混合,导致视觉感知不自然。为了解决这个问题,在本文中,我们提出了聚合注意力,这是一种基于仿生设计的令牌混合器,它模拟生物中央凹视觉和连续眼运动,同时使特征映射上的每个令牌具有全局感知。此外,我们结合了可学习的令牌,与传统的查询和键交互,这进一步多样化了亲和矩阵的生成,而不仅仅依赖于查询和键之间的相似性。我们的方法不依赖于堆叠进行信息交换,从而有效地避免了深度退化,实现了自然的视觉感知。

AIcurator的博客 683

VUE 将后端返回的二进制流前端进行处理实现下载文件(复制可直接使用)

2.引入创建的exceljs import { urls, exportExcel } from "@/api/excel.js";3.在需要使用的位置使用引入的JS里面的方法。1.创建excel.js。

zh_hao123的博客 1614

S7-1200与ABB机器人进行SOCKET通信的具体方法示例

S7-1200与ABB机器人进行SOCKET通信的具体方法示例

Robot_PLC_HMI_Automation 3289

前端处理后端返回的二进制流文件

前端处理后端返回的二进制流文件 首先收到后台的数据 由于项目文件服务器加密原因,只能通过后台接口获取二进制流, 需求: 需要点击一个 按钮 ,实现文件下载 ,而后端返回的数据为二进制流数据。 原因: 前端收到后台的数据,前端收到后台接口获取的二进制流,前端实现文件下载。前端页面的编码格式和服务端编码格式不同,正如此时,服务端返回的是 blob格式的数据,而我们使用的是 非 blob格式去解析,所以产生了乱码。 1.这一步非常重要!!!在请求接口时要设置responseType为blob。 要想处理这段乱码

Anony_me的博客 7608

ESP32 WIFI 智能巡线小车设计与实现(四足 / 四轮通用)

本文设计的 ESP32 WIFI 智能巡线小车,硬件模块化、软件轻量化,兼容四足与四轮两种结构,实现了自动巡线与 WIFI 远程控制双功能。系统成本低、易上手,适合嵌入式初学者学习 WIFI 通信、传感器应用、运动控制等核心知识点,也可在此基础上扩展蓝牙控制、避障、视觉识别等功能。

weixin_42300449的博客 151

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

前端下载文件的几种方式

一、a标签download下载 后端返回一个可下载的url文件,或者前端本地保存的文件,通过路径引入下载。 (1)将资源放入前端本地保存,打包后随一起上传自服务器 // 本地资源下载,引入路径即可,这里的路径指的是打包后文件与代码文件的相对路径 <a href="./import-template.xlsx" download target="_blank"> 下载上传模板 </a> (2)请求服务器,返回的url放入a标签的href属性中, 下面是伪代码,实现的步骤 先获

秋来九月八 1万+

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

后端返回二进制文件流,前端如何下载文件

项目中有一个download接口,这个接口直接返回二进制文件流。之前如果下载文件,一般后端传一个加密串过来,然后前端进行解密,拼接成URL再去下载。现在等于直接把文件发给前端,这种情况下怎么下载文件?问了下同事,他们也没遇到过这种情况,好在网上有不少资料可以参考。下面先给出解决问题的思路,最后再给链接。 二进制流接收 首先需要接收后端传过来的二进制流。默认情况下axios不会处理二进制数据,即请求可以正常被浏览器接收,但是axios不会去处理。需要在请求的时候设置responseType: 'blob'才可

weixin_43487782的博客 2万+

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

前端二进制流文件下载-Blob操作

前端下载文件的方法有两种, 一种是后端返回下载的URL, 使用 Window.open(URL) 下载, 另一种就是后端直接返回文件的二进制内容,前端做转换再下载。如果后台返回的是 get 请求的下载可以直接使用 a 标签下载 如果后台返回的是 URL 地址 如果后台的的下载接口是 post 请求时,需要使用 blob 转换,前端如何将二进制文件做转换实现下载呢?只要思想就是把后端返回的二进制文件放在 Blob 里面,并且把使用Blob 创建一个URL ,再通过JavaScript动态创建一个a标签,使用

qq_41536505的博客 6311

vue的axios调用后端接口下载文件问题(blob下载二进流)

今天做了一个需求,,项目的excel表数据的导出,前面我直接调用接口但是却发现后端返回了的数据是二进流格式,如图: 这就纳闷了,后来查询资料就得知了,前端需要用blob就可以二级制流文件下载到了本地了,这里,感谢原来博主分享的资料,让我解决问题,附上连接https://www.cnblogs.com/art-poet/p/13730640.html 后来获取到数据之后,需要对请下载文件名进行定义,我发线获取的文件的一堆什么格式我也不知道,问了后端才知道,对其进行了encodeURI编码,然后我在前端

kebi99的博客 1435

ajax获得excel文件流在前端打开_前端下载普通文件与二进制流文件

前端下载文件通常会遇到这两种情况文件上传到资源服务器,后端只保存了文件地址,前端拿到后端返回的文件地址直接下载。文件就存在后端服务器上(通常是临时根据前端参数动态生成,用完就删),后端读取文件后向前端返回文件的二进制流。下面以下载 excel 文件为例,分别模拟这是这两种情况。通过文件地址直接下载 新建一个项目,在项目中新建一个空的文件夹 service 模拟一个服务,在文件夹内新建一个...

weixin_35353583的博客 1336

通过 Blob 对二进制流文件下载实现文件保存下载

前端实现文件的下载主要有两种方式:(1)直接打开下载链接(通过浏览器解析方式直接下载);(2)通过 Blob 对二进制流文件下载。实际用那种方法可以看后端的返回值和请求方式。

Xxxxxl17的博客 2913

前端文件下载(接口返回二进制流)

前端 文件下载

MR.杜的博客 273

JS学习笔记——前端下载普通excel文件和二进制文件的区别

1、前提 这几天项目开发,有个需求点是有两个按钮点击事件,点击时分别需要下载和导出excel文件,两个都是GET接口请求方式,不过区别是: 一个是后端直接给接口地址,前端不用传参数给后端,后端直接返回一个excel文件(这种是文件上传到资源服务器上,后端只保存了文件地址,前端拿到后端返回的文件地址直接下载) 一个是后端给了接口地址,同时前端需要给后端传一些参数字段,后端返回的不是一个excel文件,而是返回二进制流,需要前端自己转换(这种是文件就存在后端服务器上(通常是临时根据前端参数动态生成,用完就删除

MRlaochen的博客 1941

vue前端axios下载文件教程,接收后端返回的二进制流处理并下载

web前端下载文件,接收后端返回的二进制流并下载

weixin_40256263的博客 446

post请求将数据传给后端,后端将文件以二进制的形式发给前端,前端进行接收并下载

post请求将数据传给后端,后端将文件以二进制的形式发给前端,前端进行接收并下载(支持IE8、IE9) excelExport(e) { //todo zhy 【导出】excel const {dataSourceFourth} = this.state; let flag = true; if (!dataSourceFourth.length) ...

weixin_45549481的博客 3782

前端将二进制数据流转为文件_前端下载普通文件与二进制流文件

前端下载文件通常会遇到这样两种情况文件上传到资源服务器上,后端只保存了文件地址,前端拿到后端返回的文件地址直接下载。文件就存在后端服务器上(通常是临时根据前端参数动态生成,用完就删除),后端读取文件后向前端返回文件的二进制流。下面以下载excel文件为例,分别模拟展示这两种情况。(前置准备:vscode,node8+,vue-cli3.5+)。一、 通过文件地址直接下载在空目录test下新建ser...

weixin_39829497的博客 1587
上一篇: vue3 + quasar 弹窗的几种方式
不知-_
博客等级 码龄8年 22粉丝 52原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

不知-_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值