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

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.xdnf.cn/news/582211.html

相关文章:

  • 动手学深度学习12.6. 多GPU的简洁实现-笔记练习(PyTorch)
  • OpenCV图像平移示例
  • Linux笔记---信号(下)
  • RabbitMQ可靠传输——持久性、发送方确认
  • LangFlow可视化Agent编排
  • 监控易代理合作“自助餐”模式上线:战略/OEM/集成,总有一款适合你
  • 【视频】使用海康SDK保存的MP4无法在浏览器(html5)中播放
  • VPLC (VPLCnext) K8S
  • (1)深度学习基础知识(八股)——常用名词解释
  • # 深入解析BERT自然语言处理框架:原理、结构与应用
  • SSL/TLS证书申请与管理技术指南
  • 【QT】QT6设置.exe文件图标
  • 华为2025年校招笔试手撕真题教程(二)
  • C++ 日志系统实战第五步:日志器的设计
  • 搜维尔科技VR+5G教室建设方案,推动实现教育数字化转型
  • 5G基站选择±10ppm晶振及低相噪技术解析
  • 云原生微服务的前世今生
  • 5G 网络寻呼的信令及 IE 信息分析
  • paddlehub搭建ocr服务
  • 关于vue彻底删除node_modules文件夹
  • JMeter-Websocket接口自动化
  • Python 学习笔记
  • React19 项目开发中antd组件库版本兼容问题解决方案。
  • ubuntu中上传项目至GitHub仓库教程
  • 【数据结构与算法】LeetCode 每日三题
  • LeetCode 3356.零数组变换 II:二分查找 + I的差分数组
  • 精益数据分析(78/126):问题-解决方案画布的实战应用与黏性阶段关键总结
  • 华为云Flexus+DeepSeek征文 | 基于ModelArts Studio 的 DeepSeek API 实现行业深度搜索和分析
  • 平时使用电脑,如何去维护
  • VideoMAE论文笔记