1

我有一个强制下载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);

此代码在我们的测试版服务器上运行,pdf 已下载并可打开。

在我们的实时服务器上,相同的代码下载了 pdf,但 pdf 文件无法打开,它说:

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

虽然我已经强制下载 pdfapache 标头设置,但似乎没有任何效果。

知道可能是什么问题吗?

4

1 回答 1

2

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

您能否尝试将您的标题修改为以下内容:

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

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

然后进行文件读取或任何操作,在我的情况下,我使用 file_get_contents(file_path) + echo 来显示内容并起到了魅力。

于 2012-08-03T06:04:36.633 回答