下载文件然后重定向到另一个页面

时间:2016-03-01 11:14:58

标签: php file redirect download header

我需要下载一个apk应用程序,但我需要将用户保留在我的页面中或将其重定向到另一个页面 带标题我只能下载应用程序或将其重定向到另一个页面,但我无法同时执行这两个操作 我的PHP代码:

    $b= "location"; 



    echo "<script>window.location.href = '$b';</script>" ; 

            $file = 'apk.apk';

if (file_exists($file)) {
header('Content-Description: File Transfer');
header('Content-Type: application/octet-stream');
header('Content-Disposition: attachment; filename="'.basename($file).'"');
header('Expires: 0');
header('Cache-Control: must-revalidate');
header('Pragma: public');
header('Content-Length: ' . filesize($file));
readfile($file);

}

2 个答案:

答案 0 :(得分:2)

根据我的研究(你可以做5分钟的谷歌搜索),你要求的是不可能的。

以一个下载内容的页面为例,然后重定向到“谢谢你下载”

他们实际执行此操作的方式是将您带到“谢谢”页面,然后开始下载。

要在代码中实现此功能,您需要先打开$b位置,然后在该脚本中通过重定向到包含下载的PHP脚本来开始下载。

示例:

的download.php

$file = 'apk.apk';

if (file_exists($file))
{
    header('Content-Description: File Transfer');
    header('Content-Type: application/octet-stream');
    header('Content-Disposition: attachment; filename="'.basename($file).'"');
    header('Expires: 0');
    header('Cache-Control: must-revalidate');
    header('Pragma: public');
    header('Content-Length: ' . filesize($file));
    readfile($file);
}

hello.php

$b= "download.php"; 
echo "Hello! <script>window.location.href = '$b';</script>" ; 

当你访问hello.php时,你会看到你好!并开始下载

答案 1 :(得分:0)

@ aron9forever感谢您的帮助,我找到了一个很好的方法:

$e= "url.com" ; 



echo "<script>setTimeout(function(){window.location.href = '$e';} ,2)</script>" ; 


echo "<iframe src='download.php' ></iframe>" ; 

和download.php:

<?php
$file = 'apk1.apk';

if (file_exists($file)) {
header('Content-Description: File Transfer');
header('Content-Type: application/octet-stream');
header('Content-Disposition: attachment; filename="'.basename($file).'"');
header('Expires: 0');
header('Cache-Control: must-revalidate');
header('Pragma: public');
header('Content-Length: ' . filesize($file));
readfile($file);

}
?>