使用PHP在新标签页中打开PDF

时间:2018-07-05 16:53:14

标签: php jquery pdf

我只是想在另一个标签中打开.pdf。

我首先使用jQuery发布两个变量:

$('#resultsTable').on('click', 'tr > td > .view-pdf', function()
{
  var $dataTable = $('#resultsTable').DataTable();
  var tr = $(this).closest('tr');
  var rowBookingNum = $dataTable.row(tr).data().JOB_REFERENCE;
  var rowPartnerNum = $dataTable.row(tr).data().SHIPPER_CODE;

  $.redirect('process/viewpdf.php', {'bookingnum':rowBookingNum, 'partnernum':rowPartnerNum });
});

PHP脚本如下所示:

<?php
if(isset($_POST["bookingnum"]))
{
    $bookingnum = $_POST["bookingnum"];
    $partnernum = $_POST["partnernum"];

    $dir = "D:/CargoDocsPDFs/" . $partnernum;

    $file = $dir . "/" . $bookingnum . '.pdf';  

    if (file_exists($file)) 
    {
        header('Content-type: application/pdf');
        header('Content-Disposition: inline; filename='.basename($file));
        header('Content-Transfer-Encoding: binary');
        header('Expires: 0');
        header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
        header('Pragma: public');
        header('Content-Length: ' . filesize($file));
        readfile($file);
        exit;
    }           
}
?>

使用以上所有内容,我可以在同一窗口中打开.pdf。这导致用户必须单击“返回”按钮才能返回上一屏幕。

我需要.pdf在新标签页中打开。如何调整代码以实现这一目标?

1 个答案:

答案 0 :(得分:3)

您需要在$.redirect(url, [values, [method, [target, [traditional, [redirectTop]]]]])中指定一个目标

查看用法:http://github.com/mgalante/jquery.redirect

所需用法:

$.redirect('process/viewpdf.php', {'bookingnum':rowBookingNum, 'partnernum':rowPartnerNum }, 'POST', '_blank');