загрузите файл, а затем перенаправьте его на другую страницу
мне нужно загрузить 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 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 вы увидите Привет! и начнется загрузка
@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);
}
?>