0

我有以下功能来强制下载文件:

static public function download($file, $options=array()) {
    $content = (isset($options['content'])) ? $options['content'] : '';
    $contentType = (isset($options['contentType'])) ? $options['contentType'] : '';
    header('Cache-Control: public');
    header('Content-Description: File Transfer');
    header('Content-Disposition: attachment; filename='.File::filename($file));
    header('Content-Type: '.$contentType);
    header('Content-Transfer-Encoding: binary');
    if ($content!='') {
        echo $content;
    } else {
        readfile($file);
    }
}

我发送一个 PDF 文件和 contentType = "application/pdf"。问题是当我尝试打开下载的 PDF 文件时,它显示“打开此文档时出错。文件可能已损坏”。很奇怪,因为我可以打开原始文件,它们看起来完全一样(文件名、大小等)

4

1 回答 1

1

确保在运行此函数之前没有输出,并且为了更好地衡量,请使用exit此函数末尾的构造:)

于 2011-01-23T23:27:15.413 回答