【发布时间】:2012-05-21 09:45:06
【问题描述】:
我有强制下载 PDF 的 PHP 代码。它适用于 Mac,但不适用于 Windows 机器。我想这可能与linux服务器读取代码并创建mac可以读取但windows不能读取的文件有关?
$filename = str_replace(' ', '%20', $_GET['brochure']);
header('Cache-Control: public');
header('Content-type: application/pdf');
header("Content-disposition: attachment; filename=\"$filename\"");
readfile('http://siteurl.com/media/download/'.$filename);
die();
关于如何让这个 PDF 下载 Windows 友好的任何建议?
错误信息是
无法打开“文件名..”,因为它不是受支持的文件 类型或因为文件已损坏(例如,它是作为 电子邮件附件且未正确解码)。
【问题讨论】:
-
如果您将浏览器直接指向
http://siteurl.com/media/download/'.$filename会怎样? -
尝试保存文件并在记事本(或类似的简单文件编辑器)中打开它,看看文件顶部是否有任何错误。
-
@ilanco 是的,没问题。但是下载器(客户端请求)不能看到该网址
-
@BartS。打开文件,它实际上包含上面代码链接所在的呈现的 html 页面
-
这意味着您没有读取正确的文件。你确定你正确使用
readfile()吗?它不应该指向本地文件系统上的 PDF(类似于readfile('/var/www/files/media/' . $filename):?现在您正在从另一个虚拟主机读取文件。