下载PDF - 无法打开它

时间:2010-09-01 11:14:21

标签: php pdf mime

我让我的用户使用以下代码下载PDF文件:

$db->Record['file']包含文档的相对路径。

访问加载pdf的虚拟页面,因此它们实际上并未在URL中看到“text.pdf”。我更改了文件的标题以实现此目的:

$downloadfile = '/data/srv/www/vhosts/htdocs'.$db->Record['file'];
$filename = basename($downloadfile);        
header('Content-Type: application/pdf');
header('Content-Disposition: attachment; filename="'.$filename.'"');        
readfile($downloadfile);

下载工作没有任何问题,但是当我尝试打开它时,出现以下错误:

The PDF file could not be openend, the type is not supported or the file
was damaged.

我该如何解决这个问题?

不是:当我直接下载文件时,意思是通过http://.../text.pdf进行访问并打开它,一切正常。

3 个答案:

答案 0 :(得分:3)

浏览器可能无法判断文件的预期读取长度。从php documentation开始,尝试在标题中添加文件大小:

header('Content-Length: ' . filesize($file));

答案 1 :(得分:2)

(从评论中复制)我敢打赌啤酒文件中有PHP错误消息。

答案 2 :(得分:0)

你在第一行/之后错过了htdocs吗?