代码之家  ›  专栏  ›  技术社区  ›  John Beasley

使用PHP在新选项卡中打开PDF

  •  1
  • John Beasley  · 技术社区  · 8 年前

    我只是想在另一个选项卡中打开一个.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 回复  |  直到 8 年前
        1
  •  3
  •   Will B.    8 年前

    $.redirect(url, [values, [method, [target, [traditional, [redirectTop]]]]])

    http://github.com/mgalante/jquery.redirect

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