PDF文件使用PHP下载后中断

时间:2015-07-22 08:21:07

标签: php pdf download header

我正在尝试生成和下载PDF文件。服务器上的生成和存储正在运行。

在最后一步中,我想强制下载生成的pdf文件。

我正在使用以下代码:

$filename = "test.pdf";
$filepath = "path/to/file.pdf";

header("Content-type:application/pdf");
header("Content-Disposition:attachment;filename='".$filename."'");
readfile($filepath);

下载本身正在运行,但pdf说:加载PDF文档时出错

我已尝试过其他标题的其他解决方案(更详细),似乎没有任何工作......任何想法?

PS:下载的文件不为空(Filesize~20 KB应该是正确的)

更新:仅在本地计算机上运行时才会出现此问题。上传到服务器它正在工作......

1 个答案:

答案 0 :(得分:1)

如果直接从服务器下载PDF文件,而不使用PHP,则会产生有效的PDF,然后我会说PHP很可能会破坏下载的文件。最可能的原因是错误处理程序的输出,如通知或警告。

确定是否属于这种情况的最佳方法是将readfile电话注释掉并保留其他所有内容。然后在文本编辑器中打开生成的文件,看看输出是什么(如果有的话)。如果它确实是错误处理程序的错误,那么您希望继续先修复这些错误。

此外,HTTP标头名称和值之间应该有一个空格。

header("Content-type: application/pdf");
header("Content-Disposition: attachment;filename='".$filename."'");

而不是......

header("Content-type:application/pdf");
header("Content-Disposition:attachment;filename='".$filename."'");