загрузите файл, а затем перенаправьте его на другую страницу


мне нужно загрузить 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);

}
Author: Rami Ossmane, 2016-03-01

2 answers

Согласно моим исследованиям (5 минут поиска в Google, которые вы могли бы сделать), то, что вы просите, невозможно.

Возьмем в качестве примера страницу, которая загружает что-то, а затем перенаправляет на "спасибо за загрузку"

На самом деле они делают это так: они переводят вас на страницу "спасибо", а затем начинают загрузку.

Чтобы реализовать это в своем коде, вам нужно сначала открыть местоположение $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 вы увидите Привет! и начнется загрузка

 2
Author: aron9forever, 2016-03-01 12:01:57

@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);

}
?>
 0
Author: Rami Ossmane, 2016-03-01 12:19:29