php pdf下载已损坏

php pdf下载已损坏,php,Php,我有一个强制下载pdf文件的代码。代码如下 $file_name = 'Bv_Ebook.pdf'; $file_url = 'http://' .$_SERVER['HTTP_HOST'].'/sites/default/files/'. $file_name; header('Content-Type: text/html'); header("Content-Transfer-Encoding: Binary"); header("Content-disposition: attachm

我有一个强制下载pdf文件的代码。代码如下

$file_name = 'Bv_Ebook.pdf';
$file_url = 'http://' .$_SERVER['HTTP_HOST'].'/sites/default/files/'. $file_name;
header('Content-Type: text/html');
header("Content-Transfer-Encoding: Binary"); 
header("Content-disposition: attachment; filename=\"".$file_name."\""); 
readfile($file_url);
这段代码在我们的beta服务器上运行,pdf可以下载并打开

在我们的live server上,相同的代码下载pdf,但无法打开pdf文件,它显示:

无法打开文档 不支持文件类型纯文本文档(文本/纯文本)

我已经试过了,但似乎什么都不管用


知道可能是什么问题吗?

使用is_readable()检查文件权限,以检查文件是否可访问。如果可以访问,请检查以下内容:

请尝试将标题修改为以下内容:

//We'll be outputting a PDF.
header('Content-type: application/pdf');

//PDF name.
header('Content-Disposition: attachment; filename="'.$file_name.'"');

然后进行文件读取或诸如此类的操作,在我的例子中,我使用了file\u get\u contents(file\u path)+echo来显示内容,并作为一个符咒使用。

内容类型:text/html
。。。你确定吗?也许是“application/pdf”?即使application/pdf不起作用也没有任何application/pdf也不起作用。text/html正在beta服务器上运行。我认为这与apache设置有关!你看到屏幕上显示了很多文字吗。PDF文件的内容应该仍然输出。通常Apache与此无关,您可以输出文档和标题。然后浏览器管理该文件。Apache只是一个Web服务器。请确保先显示文档内容。如果没有,请检查文档路径实际上我正在同时重定向到另一个页面,因此不知道它是否正在写入任何文本。仅供参考,在chrome开发者工具中,它显示为“(已取消)”,只需禁用重定向和测试。看看你是否在读文件