我已经使用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到大约80 MB),这不是一个理想的情况,我希望下载的文件是默认操作 .

任何想法都非常感激 .

谢谢!