doushi8599
2015-06-03 09:03
浏览 31
已采纳

下载PDF文件,而不是使用CodeIgniter显示它

I am generating PDF file using CodeIgniter and R&OS pdf class. But now the problem is that the pdf is displayed to the browser. I instead want it to be downloaded. Here is my code :

$this->load->library('cezpdf');

        $data['users'] = $this->user->get_all_ayant_droits();

        foreach($data['users'] as $user) {
            $db_data[] = array('name' => $user->nom, 'department' => $user->Department, 'status' => $user->Status);
        }

        $col_names = array(
            'name' => 'Noms et Prenoms',
            'department' => 'Département',
            'status' => 'Status'
        );

        $this->cezpdf->ezTable($db_data, $col_names, 'Ayant droit Base Loisirs de Kribi', array('width'=>550));
        $this->cezpdf->ezStream();  

What is missing for this controller to send the file to download ?

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 邀请回答

2条回答 默认 最新

  • duanjie2940 2015-06-03 09:36
    已采纳

    You can pass the argument to the function ezStream

    $this->cezpdf->ezStream(array $options);
    

    $options 'compress' => 0/1 to enable compression. For compression level please use $this->options['compression'] = at the very first point. Default: 1 'download' => 0/1 to display inline (in browser) or as download. Default: 0

    点赞 打赏 评论
  • dozpv84422 2015-06-03 09:32

    You can use Download Helper https://ellislab.com/codeigniter/user-guide/helpers/download_helper.html?

    $this->load->helper('download');
    $data = $this->cezpdf->ezStream(); 
    force_download("PDF_filename.pdf", $data); 
    

    You can also use ouput variable by setting proper header value.

    $this->output->set_header('Content-Disposition: attachment; filename="PDF_filename.pdf"');
    $this->output->set_content_type('application/pdf')
                 ->set_output($this->cezpdf->ezStream());
    

    here by setting content type to appication/pdf so browser identify content is pdf and Content-Disposition: attachment force to download the file.

    Hope this helps. Sorry for poor English.

    点赞 打赏 评论

相关推荐 更多相似问题