PDF呈现为文本

时间:2012-08-27 14:37:43

标签: php apache pdf

我正在使用PHP通过浏览器为我的网络应用程序生成PDF。最近,客户端将Web服务器更改为Apache,现在此功能已不再有效。浏览器不是生成PDF,而是将PDF显示为文本,就像忽略Content-Type(设置为“application / pdf”)一样。事实上,我通过在源代码中注释设置Content-Type的行来成功模拟了这个问题。

我需要关于在哪里寻找什么以及寻找什么的想法,非常欢迎任何帮助:)

2 个答案:

答案 0 :(得分:2)

由于您通过PHP生成PDF文件,因此可以尝试添加这些标题:

$file_default = 'default filename you want to appear when the user downloads.pdf';
$file_location = '/path/to/file.pdf';
header('Content-Description: File Transfer');
header('Content-Type: application/octet-stream');
header('Content-Disposition: attachment; filename='.$file_default);
header('Expires: 0');
header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
header('Pragma: public');
header('Content-Transfer-Encoding: binary');
header('Content-Length: ' . filesize($file_location));
ob_clean();
flush();
readfile($file_location);

答案 1 :(得分:0)

我猜你必须强制apache下载PDF内容而不是显示:

检查一下:http://www.thingy-ma-jig.co.uk/blog/06-08-2007/force-a-pdf-to-download