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

前端文件下载方式

前端文件下载方式

方法一:window.open

只要提供了文件的服务器地址,使用window.open也就是在新窗口打开,这时浏览器会自动执行下载。

window.open(url)

方法二:a标签

<a href="url" download="test">下载文件</a>

方法三:xhr下载

export const exportFile = async (data: FileItem) {
  const res: Blob = await http.post(url, data, {
    responseType: 'blob',
  })
  if (res.type !== 'application/json') return downloadFile(res, data.name);
  const r = await res.text();
  message.error(JSON.parse(r)?.msg);
  return;
}
 
/**
 * 使用bolb方式下载
 * @param res
 * @param filename
 * @returns
 */
export function downloadFile(res: Blob, filename: string) {
  const url = window.URL.createObjectURL(new Blob([res]))
  const a = document.createElement('a')
  a.style.display = 'none'
  a.href = url
  a.download = filename
  document.body.appendChild(a)
  a.click()
  document.body.removeChild(a)
  window.URL.revokeObjectURL(url) // 释放blob对象
}

方法四:saveAs下载

import {saveAs} from 'lodash-es';
 
export function downloadFile(url: string, filename: string, success?: (data: string) => void) {
  if (url && url.trim()) {
    saveAs(url, filename || '未命名文件');
    success;
  } else {
    message.destroy();
    message.error('文件下载路径不能为空!');
  }
}

http://www.kler.cn/a/381929.html

相关文章:

  • 京东科技基于 Apache SeaTunnel 复杂场景适配 #数据集成
  • 基于Spring Boot的工商局商家管理系统
  • 各种网站(学习资源及其他)
  • vue 集成 webrtc-streamer 播放视频流 - 解决阿里云内外网访问视频流问题
  • CASA(Carnegie-Ames-Stanford Approach) 模型原理及实践
  • PostgreSQL 的历史
  • Linux下Redis的安装与使用
  • C 学习(5)
  • VMware虚拟机可以被外部机器访问吗?
  • D59【python 接口自动化学习】- python基础之异常
  • 硬件基础06 滤波器——无源、有源(含Filter Solutions、Filter Pro、MATLAB Fdatool)
  • spring—boot(整合redis)
  • CSS【二】与盒子模型
  • zabbix 7.0 安装(服务器、前端、代理等)
  • 了解数据库的ACID特性
  • CI/CD 的概念
  • 大华乐橙设备私有平台EasyCVR视频设备轨迹回放平台支持哪些摄像机?摄像机如何选型?
  • flink实战-- flink任务的火焰图如何使用
  • IT设备告警预测:运维团队的新导向
  • MySQL45讲 第十三讲 为什么表数据删掉一半,表文件大小不变?
  • Scala入门基础(16)scala的包
  • CSP/信奥赛C++刷题训练:经典广搜例题(1):洛谷P1443 :马的遍历
  • CISAW-PIS——个人信息安全
  • 数字后端零基础入门系列 | Innovus零基础LAB学习Day9
  • 理解 WordPress | 第二篇:结构化分析
  • 山东路远生态科技有限公司竣工投产仪式暨产品发布会圆满举行