我正在使用以下功能下载pdf文件,当我从PC或笔记本电脑下载时工作正常但是当我点击使用ipad的下载链接时,它会打开一个包含许多特殊字符的页面,我无法下载文件。
我的下载功能是
public function download() {
$download_path = $_SERVER['DOCUMENT_ROOT'] . "/import";
$filename = $_GET['file'];
$file = str_replace("..", "", $filename);
$file = "$download_path/$file";
if (!file_exists($file))
die("Sorry, the file doesn't seem to exist.");
$type = filetype($file);
header("Content-type: $type");
header("Content-Disposition: attachment;filename=$filename");
header('Pragma: no-cache');
header('Expires: 0');
readfile($file);
}
有关此错误的任何想法?
答案 0 :(得分:3)
这可能是个问题:
$type = filetype($file);
header("Content-type: $type");
来自manual
可能的值是fifo,char,dir,block,link,file,socket和 未知的。
您希望在标题中看到哪些内容。您可能正在寻找:
header('Content-type: application/pdf');
答案 1 :(得分:1)
您可能需要 finfo_file()
而不是filetype()
。