1

我的网络应用程序应该工作的方式是用户填写表单,然后 AJAX 将表单数据发送到生成 PDF 的 PHP 文件(使用 xpdf)。然后生成的 PDF 应该可以在带有 AJAX 的 HTML 页面上下载。

如果我直接在浏览器中打开 pdf.php 就可以了。但是我需要弄清楚如何将它与 AJAX 连接,以便它将生成的 PDF 发送回 AJAX,用户只需单击页面上的按钮即可下载它。

阿贾克斯:

$.ajax({
    url: 'pdf.php',
    type: 'POST',
    data: pdfData
})
.done(function(response){
});

pdf.php:

<?php 
include('fpdf.php');
include('fpdi.php'); 

// initiate FPDI 
$pdf =& new FPDI(); 
// add a page 
$pdf->AddPage();
...
$pdf->Output('address.pdf', 'D'); 
?>
4

2 回答 2

0

你需要一个两步的过程,你不能只用第一个 AJAX 调用来做。

  1. 您的 AJAX 调用不应返回 PDF 内容,而应返回访问 PDF 的 URL,例如/path/to/getpdf.php?id=23535&securitykey=142505
  2. 您的 javascript 应尝试在新窗口或选项卡中打开该新 URL
  3. 您的getpdf.php脚本应使用适当的 HTTPContent-TypeContent-Disposition标头提供 PDF 数据以强制下载提示。

大多数浏览器会在用户选择打开/保存文件后自动关闭新标签页。

于 2013-09-05T23:29:36.860 回答
0

完成 pdf 文件后,您就知道 pdf 的路径和所有详细信息。将 html 或 json 对象返回到您的页面,并创建一个新的 html 按钮,该按钮将链接到 pdf 文件。

您返回的数据将包含有关 pdf 的所有必要详细信息。名称、路径等...

于 2013-09-05T23:23:51.490 回答