2011-10-11 44 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