我正在尝试生成和下载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应该是正确的)
更新:仅在本地计算机上运行时才会出现此问题。上传到服务器它正在工作......
答案 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."'");