当前位置: 首页 > news >正文

js 将文件 url 地址转成 Blob 文件流并下载

  1. 安装 axios(如果还没有安装):

    npm install axios
  2. 创建一个方法来处理文件下载

    在你的 Vue 组件中,可以创建一个方法来处理文件下载。假设你有一个 API 接口返回文件流,你可以使用 axios 来发送请求并处理响应。

<template><div><button @click="downloadFile">Download File</button></div>
</template><script>
import axios from 'axios';export default {methods: {async downloadFile() {try {// 假设你的接口是 /api/get-fileconst response = await axios.get('/api/get-file', {responseType: 'blob' // 确保响应类型为blob});const url = window.URL.createObjectURL(new Blob([response.data]));const link = document.createElement('a');link.href = url;link.setAttribute('download', 'file.pdf'); // 设置下载的文件名document.body.appendChild(link);link.click();document.body.removeChild(link);} catch (error) {console.error('Error downloading file:', error);}}}
};
</script>
  • axios.get('/api/get-file', { responseType: 'blob' }):发送一个GET请求到你的 API 接口,并将响应类型设置为 blob,以便接收二进制数据。
  • window.URL.createObjectURL(new Blob([response.data])):将响应数据转换为一个 Blob 对象,并生成一个临时的URL。
  • 创建一个隐藏的 <a> 标签,并将其 href 属性设置为生成的临时URL,同时设置 download 属性以指定下载的文件名。
  • 将这个 <a> 标签添加到文档中,然后模拟点击事件以触发下载。
  • 最后,移除这个临时创建的 <a> 标签。

这样,当用户点击按钮时,浏览器会开始下载指定的文件。 


http://www.mrgr.cn/news/67045.html

相关文章:

  • Linux的硬盘管理
  • STM32——ADC
  • 数据结构 C/C++(实验一:线性表)
  • Dockerfile文件编写
  • HCIP-HarmonyOS Application Developer V1.0 笔记(四)
  • yolo系列各种环境配置运行
  • 2025 年使用 Python 和 Go 解决 Cloudflare 问题
  • Vue 3 day1106
  • string模拟实现find
  • 六个核桃斥资千万研究脑健康,核桃健脑作用科学具象化了
  • SpringBoot配置Rabbit中的MessageConverter对象
  • 01简介——基于全志V3S的Linux开发板教程笔记
  • 信息安全工程师(78)网络安全应急响应技术与常见工具
  • 对比JavaScript、C、Python在声明变量后未初始化处理上的差异与深度解析
  • springboot-Ioc-Di
  • 内网渗透-信息收集篇
  • 输入/输出系统
  • 呼叫中心如何安排用户回访?
  • 编译工具与文件学习(一)-YAML、repos、vcstoolcolcon
  • NoSQL基础知识总结
  • xftp连接中不成功 + sudo vim 修改sshd_config不成功的解决方法
  • Linux 高级IO
  • sqli-labs(第三关)
  • 全流程揭秘:如何打造一个虚拟3D展厅?
  • memcache redis区别
  • 支持向量机相关证明 解的稀疏性