提供Codeigniter中文件的下载路径

时间:2018-10-01 05:32:08

标签: php codeigniter

因此,表中的内容包含一些复选框,因此基于用户已选中的复选框,它将以.php格式下载表的特定列。因此,我尝试了以下代码:-

public function export_php() {
            $export = $this->session->userdata('export_id');
            $exports = $this->query_revision_model->export($export);
            $data = "";
            foreach ($exports as $export) {
                $data .= $export->sql_changes . "\r\n";
            }
            $filename = "export.php";
            $handle = fopen($filename, w);
            fwrite($handle, $data);
            fclose($handle);
    }

因此,一切工作正常,但是我无法提供下载文件的路径,因此它保存在不需要的 application 文件夹中。 我尝试 force_download($ filename,$ data)不起作用,因为我使用的是Ajax。

1 个答案:

答案 0 :(得分:0)

您需要强制浏览器下载除显示屏以外的文件。

public function export_php() {
        $export = $this->session->userdata('export_id');
        $exports = $this->query_revision_model->export($export);
        $data = "";
        foreach ($exports as $export) {
            $data .= $export->sql_changes . "\r\n";
        }
        $filename = "export.php";
        $handle = fopen($filename, w);
        fwrite($handle, $data);
        fclose($handle);
        $filePath = APPPATH.$fileName;
        header("Cache-Control: public");
        header("Content-Description: File Transfer");
        header("Content-Disposition: attachment; filename=$fileName");
        header("Content-Type: application/php");

// Read the file
readfile($filePath);
exit;
}

,然后在您的ajax代码中尝试使用此方法而不是ajax

window.location.replace('Your URL Here')

希望有帮助!