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

时间:2010-04-09 23:02:24

标签: 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文件。我知道我正在获取我的文件,因为如果我将扩展名重命名为pdf,我可以打开它。

这看起来太简单了!我错过了什么吗?

2 个答案:

答案 0 :(得分:5)

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

如果您想强制浏览器下载它,请添加:

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

答案 1 :(得分:4)

Htbaa对于你应该添加的行是正确的,但是由于Ying要求浏览器而不是下载文件,所以正确的行是:

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

顺便说一下,你不想echo(readfile(...)),因为它会添加int来表示文件大小(php.net/readfile