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

vue3+ts 前端word文档下载文件时不预览直接下载方法(支持 doc / excel / ppt / pdf 等)

前端word文档下载文件时不预览直接下载方法支持 doc / excel / ppt / pdf 等

根据需要,要实现一个下载文档的需要
在这里插入图片描述
最简单的方法就是使用a标签
如果是相同域可以直接下载,但如果是不同域的,就会先打开一个预览页,在预览页再点下载。
在这里插入图片描述
但其实我希望得到的效果是,当我点击下载时,可以直接下载,不要预览,可以使用如下方法

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
代码如下:

const downloadRecordHandler = (url) => {console.log("url", url);let filename = "xxxxxxx"; //文件名getBlob(url).then((blob) => {saveAs(blob, filename);});};const getBlob = (url) => {return new Promise((resolve) => {const xhr = new XMLHttpRequest();xhr.open("GET", url, true);xhr.responseType = "blob";xhr.onload = () => {if (xhr.status === 200) {resolve(xhr.response);}};xhr.send();});};const saveAs = (blob, filename) => {if (window.navigator.msSaveOrOpenBlob) {navigator.msSaveBlob(blob, filename);} else {const link = document.createElement("a");const body = document.querySelector("body");link.href = window.URL.createObjectURL(blob);link.download = filename;link.style.display = "none";body.appendChild(link);link.click();body.removeChild(link);window.URL.revokeObjectURL(link.href);}};

这样就实现了我想要的效果。

http://www.lryc.cn/news/424161.html

相关文章:

  • Java 空值与null 形参与实参学习
  • 【QT常用技术讲解】QTableView添加QCheckBox、QPushButton
  • linux监控命令
  • SpringBoot入门笔记
  • python 华为od 单词接龙
  • Vue+Echart实现地图省市区三级下钻
  • Apache Tomcat 信息泄露漏洞排查处理CVE-2024-21733)
  • 51单片机-LED实验
  • 无人机开启农林植保新篇章
  • 第N4周:NLP中的文本嵌入
  • C++高精度减法
  • protobuf cmakelist,msvc utf-8设置
  • Haproxy讲解
  • K8S系列——一、Ubuntu上安装Helm
  • 排序: 插入\希尔\选择\归并\冒泡\快速\堆排序实现
  • OpenCV图像处理——按最小外接矩形剪切图像处理ROI后映射回原图像
  • Linux中以单容器部署Nginx+ASP.NET Core
  • 【秋招笔试】8.11大疆秋招(第三套)-三语言题解
  • 标题:打造编程学习的知识宝库:高效笔记记录与整理
  • 【Rust光年纪】Rust 官方提供的关键工具概览:代码检查、格式化和依赖管理
  • 【Python学习-UI界面】PyQt5 小部件8-QSlider 数值滑动
  • MapReduce入门教程
  • JDBC1 Mysql驱动,连接数据库
  • LeetCode 205 同构字符串
  • ARM高性能计算(HPC)处理器Neoverse介绍
  • 【每日力扣中医养生】力扣1298. 你能从盒子里获得的最大糖果数
  • 大数据-81 Spark 安装配置环境 集群环境配置 超详细 三台云服务器
  • C#创建一个自定义控件类
  • springboot牙科就诊管理系统--论文源码调试讲解
  • CUDA+tensorflow+python+vscode在GPU下环境安装及问题汇总与解答