我正在保存一个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响应。这里有两个问题:
- 当您使用了上面几行的本地路径时,为什么要使用http?仅使用本地路径
- URL返回的内容被附加到已经发送的PDF中,该PDF以PDF和HTML混合的文档结束(404响应)->损坏的PDF
结论:使用"F"作为第二个参数,并使用相同的路径进行写入和读取,而不是本地路径和URL的混合。