我的Web应用程序的工作方式是用户填写表单,然后AJAX将表单数据发送到生成PDF(使用xpdf)的PHP文件。然后,生成的 PDF 应该可以使用 AJAX 在 HTML 页面上下载。
如果我直接在浏览器中打开pdf.php它可以正常工作。但是,我需要弄清楚如何将其与 AJAX 连接,以便它将生成的 PDF 发送回 AJAX,用户只需单击页面上的按钮即可下载它。
阿贾克斯:
$.ajax({
url: 'pdf.php',
type: 'POST',
data: pdfData
})
.done(function(response){
});
.php:
<?php
include('fpdf.php');
include('fpdi.php');
// initiate FPDI
$pdf =& new FPDI();
// add a page
$pdf->AddPage();
...
$pdf->Output('address.pdf', 'D');
?>
pdf 文件完成后,您知道 pdf 的路径和所有详细信息。将 html 或 json 对象返回到您的页面,并创建一个将链接到 pdf 文件的新 html 按钮。
您返回的数据将包含有关 pdf 的所有必需详细信息。名称、路径等
您需要一个两步过程,不能仅通过第一次 AJAX 调用来完成。
- 您的 AJAX 调用不应返回 PDF 内容,而应返回用于访问 PDF 的 URL,例如
/path/to/getpdf.php?id=23535&securitykey=142505
- 您的 javascript 应该尝试在新窗口或选项卡中打开该新 URL
- 您的
getpdf.php
脚本应使用适当的 HTTPContent-Type
和Content-Disposition
标头为 PDF 数据提供,以强制下载提示。
大多数浏览器会在用户选择打开/保存文件后自动关闭新选项卡。