You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何利用Blob对象查看PDF文档并实现按需下载?

如何使用Blob对象查看PDF文档并按需下载?

要实现通过Blob对象查看并下载PDF,核心是将后端返回的二进制PDF数据转换为Blob对象,再借助浏览器的URL API生成可访问的临时链接,同时实现预览和下载功能。具体实现代码如下(基于Angular框架):

pdfPrint() {
  this.commonservice.PostDownload('serviceName', '', requestBody).subscribe((data: Blob) => {
    // 将后端返回的二进制数据构造成PDF类型的Blob对象
    const pdf = new Blob([data], { type: 'application/pdf' });
    // 生成Blob对象的临时访问URL
    const url1 = window.URL.createObjectURL(pdf);
    
    // 在新窗口打开PDF实现预览
    window.open(url1);
    
    // 创建隐藏的a标签触发下载
    const link = document.createElement('a');
    link.setAttribute('style', 'display: none');
    link.href = url1;
    link.target = '_blank';
    document.body.appendChild(link);
    link.click();
    
    // 清理资源,释放临时URL占用的内存
    window.URL.revokeObjectURL(url1);
    link.remove();
  });
}

关键步骤说明:

  • 获取二进制数据:通过后端接口(示例中为PostDownload)获取PDF的二进制Blob数据
  • 构造Blob对象:明确指定MIME类型为application/pdf,确保浏览器能正确识别文件类型
  • 生成临时URL:createObjectURL将Blob转换为浏览器可直接访问的URL
  • 预览与下载:window.open实现预览,动态创建a标签并触发点击实现下载
  • 资源清理:使用revokeObjectURL释放临时URL的内存,避免内存泄漏

内容的提问来源于stack exchange,提问作者Ankit

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.20 01:35:23