PHP readfile()不强制下载

时间:2014-07-09 14:51:03

标签: php .htaccess file-io download

当我运行下面的功能时,它会找到并读取文件,并以csv格式在我的Chrome开发工具预览选项卡中正确显示结果。但它不是下载它。如果我直接链接到浏览器中的文件,则会下载它,因此它似乎不是.htaccess问题。我已经在documentation中使用了这个示例,并在Stack Overflow中找到了它的许多变体,但结果是相同的:文件显示在dev工具的预览选项卡中(同样适用于Firefox)但没有下载。我的代码:

public function download()
{
    $file = $this->dir;

    if (file_exists($file)) {

        header('Content-Description: File Transfer');
        header('Content-Type: application/csv');
        header('Content-Disposition: attachment; filename='. $file);
        header('Expires: 0');
        header('Cache-Control: must-revalidate');
        header('Pragma: public');
        header('Content-Length: ' . filesize($file));
        ob_clean();
        flush();
        readfile($file);
        exit;
    }       
}

我正在使用最新的Wamp服务器进行本地开发。当我按下/拉到遥控器时,结果是一样的。

1 个答案:

答案 0 :(得分:2)

从您的问题来看,您可能会尝试通过AJAX请求下载文件。

如果是这样,我不相信你能做到这一点。相反,您可以在新窗口中打开文件的链接,这将成功下载文件。