我正在使用PHP通过浏览器为我的网络应用程序生成PDF。最近,客户端将Web服务器更改为Apache,现在此功能已不再有效。浏览器不是生成PDF,而是将PDF显示为文本,就像忽略Content-Type(设置为“application / pdf”)一样。事实上,我通过在源代码中注释设置Content-Type的行来成功模拟了这个问题。
我需要关于在哪里寻找什么以及寻找什么的想法,非常欢迎任何帮助:)
答案 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