2011-10-11 56 views
-2

可能重複:
Download a file and redirect…or alternativePHP頭 - 內容和位置

基本上,我們有輸出使用PHP頭文件類型的PHP文件。

我們希望它是這樣工作的:

用戶點擊鏈接時,頁面打開,下載提示出現,然後才促使下載(主PHP頁面)的頁面重定向到另一個頁面...

我該如何去做這件事?我希望它只在下載提示傳遞給用戶後才重定向。

所以..排序謝謝你的網頁。

可以這樣做,像這樣:

header('Pragma: public'); 
header('Expires: 0'); 
header('Cache-Control: must-revalidate, post-check=0, pre-check=0'); 
header('Cache-Control: public', false); 
header('Content-Description: File Transfer'); 
header('Content-Type: '.$type); 
header('Accept-Ranges: bytes'); 
header('Content-Disposition: attachment; filename="' . $filename . '"'); 
header('Content-Transfer-Encoding: binary'); 
header('Content-Length: '.filesize($file)); 
/* sleep for say 3 seconds.. */ 
header('Location: thankyou.php'); 
exit(); 

此代碼是純粹的書面作爲一個例子,但如何才能創造這樣的事情?

因此,彈出下載提示,等待3秒鐘,然後將原始頁面指向感謝頁面。

+0

何不去不計其數的一個這樣的下載網頁,看看它是如何工作的? –

+0

什麼是萬億這樣的下載頁面? – Latox

+0

具有相同功能的頁面。就像download.com上或者類似的網站上的一樣。 –

回答

0

HTTP標頭一次全部輸出(除了分塊發送,儘管我對HTTP是否允許標頭有點模糊)。

This question看起來很相似。

+0

謝謝,我正在考慮沿着這些方向行事,並在原始頁面上做這件事,但我不知道天氣是否可能通過PHP。 – Latox

+0

@Latox:根據定義,HTTP不支持,這對PHP來說是不可知論的。 – hakre

0

header('Location:thankyou.php');

會殺了你的下載,

如果你睡你停止每一件事情,並不會在瀏覽器中收到文件,它只是重定向到感謝,you.php