首页  >  文章  >  Java  >  如何通过Ajax下载Action类生成的PDF?

如何通过Ajax下载Action类生成的PDF?

DDD
DDD原创
2024-11-01 23:01:29426浏览

How Can I Download a PDF Generated by an Action Class via Ajax?

通过 Ajax 处理 PDF 下载:解决方案

当 Ajax 调用尝试下载由操作类生成的 PDF 文件时,它可能会如果无法将流传送到浏览器,则会遇到错误。要解决此问题,需要采用不同的方法。

在提供的操作类中,生成 PDF 文件,并设置其流以使用正确的标头进行下载。然而,Ajax 调用需要以不同的方式处理,以方便传输。

这是一个已成功实现的解决方案:

<code class="javascript">$.ajax({
  url: '<URL_TO_FILE>',
  success: function(data) {
    var blob=new Blob([data]);
    var link=document.createElement('a');
    link.href=window.URL.createObjectURL(blob);
    link.download="<FILENAME_TO_SAVE_WITH_EXTENSION>";
    link.click();
  }
});</code>

在此代码中,Ajax 调用检索 PDF 文件流作为数据变量。然后它根据数据创建一个 Blob 对象。将创建一个新的链接元素,并将其 href 设置为 Blob 的 URL。下载属性设置为具有适当扩展名的所需文件名。最后,单击链接即可启动下载过程。

事实证明,这种方法可以有效地将操作类生成的 PDF 文件传递​​到浏览器进行下载,从而实现服务器和客户端之间的无缝集成。

以上是如何通过Ajax下载Action类生成的PDF?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn