2017-07-21 97 views
-1

我想保留一個按鈕來下載pdf文件。但庫文件顯示在視圖中。有人請幫助我。提前感謝。 控制器代碼:如何在codeigniter中包含pdf下載

public function pdf() 
{ 
    //load library 
    $this->load->library('pdf'); 
    $pdf = $this->pdf->load(); 
    // retrieve data from model 
    $data['DocFile'] = $this->Docauth->get_items(); 
    $data['DocFileName'] = "items"; 
    ini_set('memory_limit', '256M'); 
    // boost the memory limit if it's low ;) 
    $html = $this->load->view('Docauth_v', $data, true); 
    // render the view into HTML 
    $pdf->WriteHTML($html); // write the HTML into the PDF 
    $output = 'Docauth' . date('Y_m_d_H_i_s') . '_.pdf'; 
    $pdf->Output("$output", 'I'); // save to file because we can 
    exit(); 

視圖文件

<div class="form-group">                
    <label class="control-label col-md-3">View File</label> 
    <div class="col-md-5"> 
     <input name="DocFile" id="DocFile" class="form-control"` type="text" > 
    </div> 
    <a href="Docauth/pdf"><span class="glyphicon glyphicon-plus"></span></a> 
</div> 
+1

https://stackoverflow.com/questions/30615451/download-a-pdf-file-instead -of-displays-it-with-codeigniter – RiggsFolly

+0

您是否嘗試在輸出之前發送頭信息(content-type,content-disposition)? – BenRoob

+1

更重要的是,你嘗試過谷歌搜索'「pdf下載codeigniter」'。它確實產生了大約1,000,000個東西供您查看 – RiggsFolly

回答

1

Output功能I將文件發送內嵌到瀏覽器。您需要使用D選項:

$pdf->Output("$output", 'D'); 

此處瞭解詳情:http://www.rubydoc.info/gems/rfpdf/1.17.1/TCPDF%3AOutput

@ PARAM字符串:DEST

目的地,發送文檔。它可以採用以下值之一的 :

I:將文件內聯發送到瀏覽器(默認)。如果可用,插件使用 。當您在生成PDF的鏈接上選擇 「另存爲」選項時,將使用名稱給出的名稱。 D:發送到瀏覽器並強制按名稱給出的名稱爲 的文件下載。 F:保存到名稱爲名稱的本地服務器文件中。 S:將文檔作爲字符串返回。名稱被忽略。

FI:相當於F + I選項

FD:相當於F + d選項