PDF文件未下载

时间:2018-12-29 08:12:59

标签: php pdf download fpdf

我要下载包含结果的pdf文件,我已经使用fpdf [$ pdf-> Output($ output_file,'F');]生成了pdf,所生成的pdf文件保存在服务器中。

我希望用户仍然能够下载从fpdf生成的pdf文件。我什至尝试使用其他输出(http://www.fpdf.org/en/doc/output.htm),但除“ F”外,其他输出均无用。 $ pdf-> Output($ output_file,'F');(使用此成功生成pdf)

我还尝试添加一个表单,该表单将从服务器将已生成的文件下载到浏览器,但是没有任何作用。我的代码如下:

<form method="post" target="_blank">
    <input type="submit" name="download" value="Download Most Recent PDF">
    <h3>Please check the content of PDF.</h3>
</form>

    $file = plugin_dir_path(__FILE__) . "../pdf/Result.pdf";
if (file_exists($file)) {
header('Content-Description: File Transfer');
header('Content-Type: application/octet-stream');
header('Content-Disposition: attachment; filename="'.basename($file).'"');
header('Expires: 0');
header('Cache-Control: must-revalidate');
header('Pragma: public');
header('Content-Length: ' . filesize($file));
readfile($file);
exit;

}

我想生成结果(这是我成功完成的),然后让用户以pdf版本下载结果。(我卡在其中)。

2 个答案:

答案 0 :(得分:0)

首先检查文件路径是否正确。如果未下载文件,请尝试调试以下代码,然后进行调试

    header('Pragma: public');

    header('Expires: 0');

    header('Cache-Control: must-revalidate, post-check=0, pre-check=0');

    header('Cache-Control: private', false); 

    header('Content-Type: application/pdf');

    header('Content-Disposition: attachment; filename="'. basename($filename) . '";');

    header('Content-Transfer-Encoding: binary');

    header('Content-Length: ' . filesize($filename));

   echo file_get_contents($filename);

    exit;

答案 1 :(得分:-1)

如果在公共文件夹中有生成的PDF,则只需在标签的href中对其进行引用:

<a href="[location of generated PDF]" target="_blank"> Click here to download PDF</a>

从技术上讲,这将在新标签页中打开PDF,但这允许用户浏览并在新标签页的PDF查看器中点击保存按钮。

我希望这能回答您的问题