2014-12-04 28 views
0

以下代碼我正在嘗試更改瀏覽器頁面。如何在Chrome中下載後重定向

$pdf->Output($pdf_file_name, 'D'); //Downloading PDF 

header("Refresh: 3; url='http://example.com/search-form/'"); 

問題:它在FireFox中工作,但沒有在Chrome和IE中工作。

我需要在Chrome/IE中工作。

回答

0

你需要在輸出前設置頭,所以才這樣做的另一種方式圓:

header("Refresh: 3; url='http://example.com/search-form/'"); 

$pdf->Output($pdf_file_name, 'D'); //Downloading PDF 

對於這項工作,您的瀏覽器需要支持這個頭「動作」。這是一種醜陋的黑客攻擊,根據請求週期的http定義 - 一個請求 - 一個響應,這種方式根本就不可能(沒有適當的客戶端支持)。畢竟,發送額外的頭文件以在響應旁邊啓動另一個請求需要客戶端支持。 - 畢竟我不想依賴那個解決方案。

固體解決方案將首先訪問您想要重定向到的動作,在呈現的視圖中放置一個不可見的iframe並將該源指向您的下載動作,以便在動作獲取時立即開始。

你可以做更多複雜的設置,包括JavaScript等,更多的重定向到不同的動作,但這很簡單。

+0

但它不適用於Chrome – 2014-12-05 18:08:23