Ajax和输出pdf文件无法协同工作

时间:2012-12-26 10:54:01

标签: ajax pdf

我有一个名为download.php的文件,并在其中调用getpdf函数。

当用户点击下载按钮时,我通过ajax调用download.php下载pdf文件。但没有任何事情发生,也没有下载窗口。我在firebug Net选项卡中检查了它,并在click事件中请求download.php。它的大小也会发生变化,表明文件正在从其位置读取,但没有下载窗口。

这是getpdf代码:

function getpdf($id) {
  header('Content-Type: application/pdf');
  readfile('/san/theo-books/PDFs/'.$id.'.pdf');
  exit;
}

这里是download.php代码:

$pdf_id = $_POST('pdi');
echo getpdf($pdf_id);

有什么问题?你能帮助我吗?

1 个答案:

答案 0 :(得分:0)

这是完整的回发版本。它没有使用jQuery Ajax,因为Popup下载窗口需要完整的回发:

<a id="pdf-10" href="#">PDF Export</a>

$(document).ready(function () {
    $('a[id^="pdf"]').click(function (event) {
        event.preventDefault();
        var pdfExportPath = "/san/theo-books/PDFs/";  
        var $a = $(this);
        var postId = $a.attr('id').replace("pdf-","");
        var form = $('<form action="' + pdfExportPath + '" name="pdf' + postId + '" id="pdf' + postId + '" method="POST"> <input id="id" name="id" type="hidden" value="' + postId + '" /></form>');
        $(form).appendTo('body');
        form.submit();
    });
});