我正在使用 PHP 通过浏览器为我的 Web 应用程序生成 PDF。最近,客户端将网络服务器更改为 Apache,现在此功能不再起作用。浏览器不是生成 PDF,而是将 PDF 显示为文本,就像它忽略 Content-Type(设置为“application/pdf”)一样。事实上,我通过注释源代码中设置 Content-Type 的行成功地模拟了这个问题。
我需要关于在哪里和寻找什么的想法,非常欢迎任何帮助:)
由于您通过 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);
我想您必须强制 apache 下载 PDF 内容而不是显示:
检查这个:http ://www.thingy-ma-jig.co.uk/blog/06-08-2007/force-a-pdf-to-download