我让我的用户使用以下代码下载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
进行访问并打开它,一切正常。
答案 0 :(得分:3)
浏览器可能无法判断文件的预期读取长度。从php documentation开始,尝试在标题中添加文件大小:
header('Content-Length: ' . filesize($file));
答案 1 :(得分:2)
(从评论中复制)我敢打赌啤酒文件中有PHP错误消息。
答案 2 :(得分:0)
你在第一行/
之后错过了htdocs
吗?