下载 PDF - 无法打开
Posted
技术标签:
【中文标题】下载 PDF - 无法打开【英文标题】:Downloading PDF - can't open it 【发布时间】:2011-04-06 18:06:13 【问题描述】:我让我的用户使用此代码下载 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
访问并打开它,一切正常。
【问题讨论】:
下载的文件实际包含什么? 我敢打赌,文件中有 php 错误消息。 我敢打赌,这些 PHP 错误是由文件 htdocstext.pdf 不存在造成的。 【参考方案1】:浏览器可能无法判断从文件中读取的预期长度。从php documentation,尝试在标题中添加文件大小:
header('Content-Length: ' . filesize($file));
【讨论】:
【参考方案2】:(从 cmets 复制)我敢打赌,文件中有 PHP 错误消息。
【讨论】:
【参考方案3】:您是否错过了第一行中htdocs
之后的/
?
【讨论】:
以上是关于下载 PDF - 无法打开的主要内容,如果未能解决你的问题,请参考以下文章
OA系统无法打开PDF文件,设置加载项发现Office Document Cache Handler无法启用,怎么设置?