Firefox无法检测PHP设置的内容类型

Firefox无法检测PHP设置的内容类型,php,firefox,content-type,Php,Firefox,Content Type,我想要一个php页面来“显示”pdf。代码如下: <?php header("Content-type: application/pdf"); readfile('Reportage - Berlin.pdf'); //tried echo(readfile(...)) as well ?> 我想不是很复杂,但firefox无法检测到这是pdf。这在Safari中有效,但在firefox中,我会得到下载该文件的提示,因此我得到的文件类似于pdftest.php。我知道我得

我想要一个php页面来“显示”pdf。代码如下:

<?php
  header("Content-type: application/pdf");
  readfile('Reportage - Berlin.pdf');  //tried echo(readfile(...)) as well
?>
我想不是很复杂,但firefox无法检测到这是pdf。这在Safari中有效,但在firefox中,我会得到下载该文件的提示,因此我得到的文件类似于pdftest.php。我知道我得到了我的文件,因为如果我将扩展名重命名为pdf,我就可以打开它


这似乎太简单了!我遗漏了什么吗?

如果您希望使用Adobe Reader在浏览器中打开它,那么这也取决于浏览器设置。之所以说文件名是pdftest.php,是因为您没有告诉浏览器文件名是什么

如果要强制浏览器下载,请添加以下内容:


标题的内容处理:附件;filename=下载的.pdf'

如果希望使用Adobe Reader在浏览器中打开,则这也取决于浏览器设置。之所以说文件名是pdftest.php,是因为您没有告诉浏览器文件名是什么

如果要强制浏览器下载,请添加以下内容:


标题的内容处理:附件;filename=下载的.pdf'

Htbaa关于应该添加哪一行是正确的,但是由于Ying要求浏览器不要下载文件,正确的行应该是:

header('Content-Disposition: inline; filename="downloaded.pdf"');

顺便说一句,您不希望echoreadfile…,因为它会添加一个int,表示文件读取的大小。

Htbaa关于您应该添加哪一行是正确的,但由于Ying要求浏览器不要下载文件,正确的行应该是:

header('Content-Disposition: inline; filename="downloaded.pdf"');

顺便说一下,您不希望echoreadfile…,因为它会添加一个int,表示文件读取的大小

+1,或者只是将文件名作为pdftest.php之后的尾随路径部分。这对于非ASCII文件名可能是必需的。@Htbaa:如果我不想强制下载怎么办?添加此选项将强制safari下载文件,而不是在浏览器窗口中“预览”文件。我想还有一个更大的问题:这个浏览器预览更像是safari特有的功能吗?有没有办法在ff中模拟这种行为?不过,这肯定回答了我关于如何让ff看到类型的问题。@Ying:您可以使用Content-Disposition:inline;文件名。。。允许浏览器尝试以内联方式显示它。然而,浏览器中的PDF需要一个插件,而让AdobeReader或Foxit安装他们的PDF插件对于安全来说是一个非常非常糟糕的主意。它使机器容易受到来自任何网页或框架的PDF阅读器漏洞的攻击。这是去年网络感染的头号来源。@bobince:谢谢,我一定会记住这一点。您如何向营销团队解释,由于浏览器安全性,我们无法进行华丽的预览嗯。作为webapp的作者,你只需确保它在有插件和没有插件的情况下都能工作即可。不要使用嵌入式for PDF,我想,一旦办公室里一半的机器都被键盘记录程序和ReallyGoodFakeAntiVirus 2010困扰,你就会让其他人担心客户端的安全性-+1或只是将文件名作为pdftest.php之后的后续路径部分也可以使用。这对于非ASCII文件名可能是必需的。@Htbaa:如果我不想强制下载怎么办?添加此选项将强制safari下载文件,而不是在浏览器窗口中“预览”文件。我想还有一个更大的问题:这个浏览器预览更像是safari特有的功能吗?有没有办法在ff中模拟这种行为?不过,这肯定回答了我关于如何让ff看到类型的问题。@Ying:您可以使用Content-Disposition:inline;文件名。。。允许浏览器尝试以内联方式显示它。然而,浏览器中的PDF需要一个插件,而让AdobeReader或Foxit安装他们的PDF插件对于安全来说是一个非常非常糟糕的主意。它使机器容易受到来自任何网页或框架的PDF阅读器漏洞的攻击。这是去年网络感染的头号来源。@bobince:谢谢,我一定会记住这一点。您如何向营销团队解释,由于浏览器安全性,我们无法进行华丽的预览嗯。作为webapp的作者,你只需确保它在有插件和没有插件的情况下都能工作即可。不要使用嵌入式for PDF,我想,一旦办公室里一半的机器都被键盘记录程序和ReallyGoodFakeAntiVirus 2010困扰,你就会让其他人担心客户端的安全性-当然,在开始打印文件内容之前,必须先放置一个头,当然,在开始打印文件内容之前,必须先放置一个头