2013-01-06 30 views
1

我使用Codeigniter作爲PHP框架和DOM PDF生成PDF文件。我在我的控制器中有以下代碼。Page生成pdf文件後不重定向到控制器

// Some other codes 

include_once('dompdf/dompdf_config.inc.php'); 
$dompdf = new DOMPDF(); 
$base_path = $_SERVER['DOCUMENT_ROOT']; 
$dompdf->load_html($html); 
$dompdf->render(); 
$dompdf->stream("invoice_$studentid.pdf"); 

redirect("my_Controller"); 

問題是生成PDF文件後,它不重定向到控制器。你能告訴我如何解決這個問題嗎?

回答

3

$dompdf->stream正在發送PDF到瀏覽器。您不能發送重定向標頭。您試圖向一個請求輸出兩個響應,這是不可能的。

這似乎不應該是一個問題。當用戶點擊鏈接下載PDF時,瀏覽器將保留在用戶所在的頁面上。如果你真的希望他們被迫在其他地方(你可能不需要,這是一個非常不同的用戶體驗,從下載鏈接到其他地方的工作方式),你可以使用JavaScript來做些事情。

+0

感謝您的回覆。其實我有一個表格。用戶提交表單後,將信息發送到數據庫,然後上面的代碼生成一個pdf文件。我想要做的是將頁面重定向到同一個控制器,以便在生成pdf文件後,表單的數據不再留在輸入元素中。但它不起作用。 :( –

+1

然後,您需要將表單的數據服務器端存儲在會話或數據庫中,重定向用戶,然後在後續請求中顯示指向PDF的鏈接或通過JavaScript觸發下載。重新談論是通過四個請求完成的:GET表單 - > POST表單 - >重定向到「謝謝」頁面 - >觸發器下載 – meagar

+0

謝謝你的幫助:) –