如何在下载框出现时重定向页面?

时间:2010-03-27 13:48:33

标签: php html download readfile

现在我得到了这段代码;

<?php

$file = "pain.png";

if (file_exists($file)) {
    header('Content-Description: File Transfer');
    header('Content-Type: application/octet-stream');
    header('Content-Disposition: attachment; filename='.basename($file));
    header('Content-Transfer-Encoding: binary');
    header('Expires: 0');
    header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
    header('Pragma: public');
    header('Content-Length: ' . filesize($file));
    ob_clean();
    flush();
    readfile($file);
    exit;
}
?>

此代码显示为下载框。但我想将此页面重定向到“谢谢”页面,而下载框仍然在这里。我怎样才能做到这一点?

...谢谢

2 个答案:

答案 0 :(得分:2)

您可以使用元刷新(http://en.wikipedia.org/wiki/Meta_refresh

来完成此操作

您可以从主页链接到下载页面。

<强>的index.html

  <html><head></head><body>
Download my awesome <a href="download.html">file</a>
</body></html>

<强> download.html

    <html>
        <head>
        <meta http-equiv="refresh" content="0;url=http://example.com/download.php" />
        </head>
        <body>
        Thanks for choosing Foobar!  Your download will begin shortly.
    If you're download does not begin, 
click <a href="http://www.example.com/download.php">here</a>
        </body>
        </html>

答案 1 :(得分:0)

由于下载 HTTP响应,因此您无法在下载响应中执行此操作。您可以重定向它们然后说“谢谢,您的下载将立即发生”等等。这似乎是大多数地方的标准解决方案。

要明确的是,感谢页面将重定向到下载网址。