我有一个强制下载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文件,它说:
无法打开文档 不支持文件类型纯文本文档(text / plain)
我已经走了force download pdf和apache headers setting,但似乎没有任何效果。
知道可能是什么问题吗?
答案 0 :(得分: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来显示内容,并作为一个魅力。