Php 如何在传输PDF附件时强制执行另存为对话框

Php 如何在传输PDF附件时强制执行另存为对话框,php,header,pdf-generation,Php,Header,Pdf Generation,我正在使用以下代码将pdf流式传输到浏览器: header("Cache-Control: must-revalidate, post-check=0, pre-check=0"); header("Pragma: public"); header("Content-type:application/pdf"); header("Content-Disposition:attachment;filename=file.pdf"); echo $pdf; 工作正常,除了在Chrome中,它只是

我正在使用以下代码将pdf流式传输到浏览器:

header("Cache-Control: must-revalidate, post-check=0, pre-check=0"); 
header("Pragma: public");
header("Content-type:application/pdf");
header("Content-Disposition:attachment;filename=file.pdf");
echo $pdf;
工作正常,除了在Chrome中,它只是保存file.pdf文件-它不会提示另存为对话框,以便我可以重命名文件,如果我选择的话

我怀疑这可能是依赖于浏览器的事情之一,但在下载pdf时,有可能强制使用带有php标题的另存为对话框吗


提前感谢您的帮助

在下载未经检查的高级设置之前,他们很可能会询问每个文件的保存位置。如果是这种情况,您将无能为力,因为这是他们的首选项。

在下载未经检查的高级设置之前,他们很可能会询问每个文件的保存位置。如果是这种情况,您就无能为力,因为这是他们的首选项。

这种行为由浏览器设置控制,因此我认为没有办法强制打开“另存为”对话框


您可以尝试不为文件指定名称,但我认为它只会继承脚本名称。

该行为由浏览器设置控制,因此我认为没有办法强制打开“另存为”对话框

您可以尝试不为文件指定名称,但我认为它只会继承脚本名称。

您可以尝试:

Content-Type = application/download
你可以试试:

Content-Type = application/download

如果您尝试使用Chrome下载其他文件,您会发现它在全球范围内几乎都使用这种行为。或者,如果不是,那至少是我经历过的。也许这是一种设置,如果你尝试使用Chrome下载其他文件,你会发现它在全球范围内使用这种行为。或者,如果不是,那至少是我经历过的。也许是某种背景