PDF下载提供损坏的PDF php


PDF Download gives corrupt PDF php

我正在保存一个pdf文件,然后尝试使用php下载它。剧本似乎很好用,但突然之间就不行了。

有人能看到我缺了什么吗?

附言:我下载的文件只有4.3kb大,所以我想那是因为它根本没有下载。实际文件大小应该大于此值。

$pdf->output(ROOTDIR.'/modules/addons/statement_generator/reports/statement.pdf');
    if($action=='print'){
        $file_name = 'statement.pdf';
        $file_url = "http://".$_SERVER['SERVER_NAME']."/modules/addons/statement_generator/reports/" . $file_name;
        header('Content-Type: application/pdf');
        header("Content-Transfer-Encoding: Binary"); 
        header("Content-disposition: attachment; filename='"".$file_name."'""); 
        readfile($file_url);
        exit;
    }

$pdf->output()调用已经将PDF发送到客户端。该文件将不会保存到您的本地文件夹中(您不是至少检查过这个吗?),因为您必须将"F"作为snd参数传递。

之后,您尝试从一个不存在的URL(!!!)中读取,该URL可能会返回样式良好的404html响应。这里有两个问题:

  1. 当您使用了上面几行的本地路径时,为什么要使用http?仅使用本地路径
  2. URL返回的内容被附加到已经发送的PDF中,该PDF以PDF和HTML混合的文档结束(404响应)->损坏的PDF

结论:使用"F"作为第二个参数,并使用相同的路径进行写入和读取,而不是本地路径和URL的混合。