vue点击下载pdf

这段代码展示了如何在HTML中创建一个下载按钮,当点击按钮时,JavaScript函数被触发,动态创建`<a>`标签并设置其`href`属性,然后模拟点击以触发文件下载。这种方法常用于前端实现无刷新下载。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. html

<div class="card-bottom-btn" @click="down(item)">
  <i class="el-icon-download"></i>下载
</div>

2. js

down(item) {
      const link = document.createElement("a");
      link.href = item.reportUrl;
      link.click();
},

### Vue 实现点击按钮下载 PDF 文件Vue 项目中实现点击按钮下载 PDF 文件可以通过多种方式完成。以下是基于 `window.open` 的简单方法,适用于大多数场景。 #### 使用 `window.open` 方法下载文件 这种方法适合于服务器已经准备好可供访问的静态资源 URL 地址的情况: ```html <template> <div> <button @click="downloadPdf">下载PDF</button> </div> </template> <script> export default { methods: { downloadPdf() { const url = 'https://example.com/path-to-your-file.pdf'; // 替换成实际的PDF文件路径 window.open(url, '_blank'); } } }; </script> ``` 此代码片段展示了如何定义一个按钮,在点击时调用 `downloadPdf()` 函数打开指定的 PDF 文件链接[^1]。 对于更复杂的场景,比如后端返回的是二进制数据流而非直接提供可访问的 URL,则可以采用如下策略处理: #### 处理来自后端的字节流传回的数据 当后端接口返回的是 PDF 字节流形式的内容时,客户端接收到响应之后需要将其转换成 Blob 对象再创建对象 URL 来触发下载动作: ```javascript methods: { async downloadPdfFromStream() { try { let response = await fetch('/api/download-pdf'); // 假设这是获取PDF字节流的服务API if (!response.ok) throw new Error('Network response was not ok'); const blob = await response.blob(); const link = document.createElement('a'); link.href = URL.createObjectURL(blob); link.download = "document.pdf"; // 设置下载后的文件名 document.body.appendChild(link); link.click(); setTimeout(() => { URL.revokeObjectURL(link.href); // 清除临时创建的对象URL document.body.removeChild(link); }, 0); } catch (error) { console.error("Failed to download the file", error); } } } ``` 这段 JavaScript 代码实现了向特定 API 发送请求以接收 PDF 文档作为字节流,并通过浏览器内置机制保存到本地磁盘上[^2]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值