多年来,我一直使用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),所以这实际上不是理想的情况,我希望将下载的文件作为默认文件行动。
任何想法都值得赞赏。
谢谢!