1

我正在使用以下功能下载 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);
}

关于这个错误的任何想法?

4

2 回答 2

3

大概是这个问题:

$type = filetype($file);
header("Content-type: $type");

手册

可能的值是 fifo、char、dir、block、link、file、socket 和 unknown。

您不想在标题中看到哪些内容。您可能正在寻找:

header('Content-type: application/pdf');
于 2012-04-12T12:36:54.887 回答
1

你可能想要finfo_file()而不是filetype().

于 2012-04-12T12:40:35.273 回答