使用PHP下载PDF,内容处置标题会导致网络错误

时间:2018-12-09 22:35:37

标签: php pdf http-headers

多年来,我一直使用PHP掩盖PDF下载的目录,下面的代码没有问题。然后我昨天从PHP 5.6升级到7.2,该代码不再起作用,但是我一直想找出问题所在。

当前,如果我单击下载链接,则会下载文件,但是最后,出现一条错误消息,内容为“失败的网络错误”(在Chrome中)和“网络连接中断”(在Safari中),则无法打开该文件。

服务器上的错误日志为空。

代码段如下:

header("Pragma: public");
header("Expires: 0");
header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
header("Cache-Control: public");
header("Content-Description: File Transfer");
header("Content-Type: application/pdf");
header("Content-Disposition: attachment; filename=".$filename.";");
header("Content-Length: ".filesize($filepath.$filename)."");
ob_end_flush();
readfile($filepath.$filename);

现在,如果我更改以下内容:

Content-Disposition: attachment;

收件人:

Content-Disposition: inline;

然后上面的方法起作用了,但是由于某些PDF很大(它们的大小范围从2 MB到大约80MB),所以这实际上不是理想的情况,我希望将下载的文件作为默认文件行动。

任何想法都值得赞赏。

谢谢!

0 个答案:

没有答案