Thinkphp 导出csv 先存储在服务器,然后输出链接下载

    public function exportQiandao() {
        // header("Content-type:text/html;charset=gb2312");
        ini_set ( 'memory_limit', '512M' );
        $filename='qiandaoliushui' . date('YmdHis',time ());
        if (! file_exists ( './uploads/csv/' )) {
            mkdir ( "./uploads/csv/", 0777, true );
        }
        $filepath="/uploads/csv/".$filename.'.csv';
        $fp = fopen('.'.$filepath,"a"); //打开csv文件,如果不存在则创建
        $where = array (); // 筛选条件
        $begindate = I ( 'get.begindate' );
        $enddate = I ( 'get.enddate' );
        $this->begindate = $begindate; // 回写到页面
        $this->enddate = $enddate;
        $begindate .= " 00:00:00";
        $enddate .= " 23:59:59";
        $where ['j.ct'] = array (
                'between',
                array (
                        $begindate,
                        $enddate 
                ) 
        );
        $where ['id_jdrule'] = array (
                'in',
                array (
                        1,
                        2,
                        3 
                ) 
        );
        
        $jin = new AdminModelJindouModel ();
        $data = $jin->qiandao ( $where );
        $csv = '区域,店铺名称,美容师,美容师状态,签到时间,导师编号,导师姓名,导师电话'; // 栏目名称
        $csv_title = iconv ( "UTF-8", "GB2312//IGNORE", $csv );
        fputcsv($fp,split(',',$csv_title));
        foreach ( $data as $i => $set ) {
            foreach ( $data [$i] as $key => $val ) {
                $data [$i] [$key] = trim ( $val );
                $data [$i] [$key] = iconv ( "UTF-8", "GB2312//IGNORE", $val );
                
                unset ( $key );
                unset ( $val );
            }
            unset ( $set );
            // print_r($data [$i]);
        }
        $size = sizeof ( $data );
        for($i = 0; $i < $size; $i ++) {
            $csv= $data [$i] ['aname'] . ',' . $data [$i] ['sname'] . ',' . $data [$i] ['name'] . ',' . $data [$i] ['frost'] . ',' . $data [$i] ['ct'] . ',' . $data [$i] ['user'] . ',' . $data [$i] ['iname'] . ',' . $data [$i] ['mobile'];
            fputcsv($fp,split(',',$csv));
        }
        //echo "<a href=".$filepath.">生成csv文件</a>"; ;
        if (isset($filename))
        {
            Header("HTTP/1.1 303 See Other");
            Header("Location: $filepath");
            exit;
        }
        //modify end
//        $this->_export_csv ( '签到流水' . time (), $csv );
    }
原文地址:https://www.cnblogs.com/houdj/p/6733854.html