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

JS实现直接下载PDF文件

pdf文件通过a标签直接下载会打开页面,所以,请求该文件的blob文件流数据,再通过window.URL.createObjectURL转成链接,就可以直接下载了。
只需要替换url和文件名称就行,文件名的后缀记得要写上pdf,不然会变成txt文件。
注意:不能跨域,可以把文件上传到后端服务器,就不会跨域了。还可以用跨域代理处理。

let url = 'http://xxxxxxxxx.pdf'
let name = '实例.pdf'// 发送http请求,将文件链接转换成文件流let xhr = new XMLHttpRequest()xhr.open('get', url, true)// 请求类型xhr.responseType = 'blob'xhr.onreadystatechange = function() {// 获取接口结果if (xhr.readyState === 4 && xhr.status === 200) {window.URL = window.URL || window.webkitURLlet a = document.createElement('a')let blob = new Blob([xhr.response])// 通过二进制文件创建urllet url = window.URL.createObjectURL(blob)a.href = urla.download = namea.click()// 销毁创建的urlwindow.URL.revokeObjectURL(url)}}xhr.send()

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

相关文章:

  • 使用KubeKey快速部署k8s v1.31.8集群
  • FreeSWITCH 纯内网配置
  • leetcode hot100:十四、解题思路大全:真·大全!
  • kali的简化安装
  • 交换机的连接方式堆叠和级联
  • Vortex GPGPU的github流程跑通与功能模块波形探索(三)
  • React深度解析:Hooks体系与Redux Toolkit现代状态管理实践
  • 实用蓝牙耳机哪款好?先做好使用场景分析!
  • Rules and Monetization
  • 防火墙NAT地址组NAT策略安全策略
  • python开发环境管理和包管理
  • Windows 使用 WSL 安装 Ubuntu
  • .jsx文件和.tsx文件有什么区别
  • 第九天的尝试
  • 每日算法 -【Swift 算法】寻找字符串中最长回文子串(三种经典解法全解析)
  • 《Cesium全生态解析:从入门到精通的3D地理空间开发指南》
  • pytorch LSTM 结构详解
  • 流程自动化引擎:重塑企业数字神经回路
  • nginx web服务日志分析
  • VSCode+EIDE通过KeilC51编译,使VSCode+EIDE“支持”C和ASM混编
  • 5.23本日总结
  • 游戏引擎学习第298天:改进排序键 - 第1部分
  • Mysql篇-优化
  • Java 集合框架核心知识点全解析:从入门到高频面试题(含 JDK 源码剖析)
  • 一文详解生成式 AI:李宏毅《生成式 AI 导论》学习笔记
  • 什么是物联网 (IoT):2024 年物联网概述
  • 8级-数组
  • 大模型 Agent 就是文字艺术吗?
  • YOLOv8检测头代码详解(示例展示数据变换过程)
  • JUC并发编程1