быстрый вопрос: у меня есть форма, которая заставляет пользователя вводить электронную почту, после чего происходит загрузка / вложение и загрузка файла ... файл загружается нормально ... однако ...
Моя проблема в том, что когда начинается загрузка, страница блокируется, и пользователь не может никуда перемещаться или что-либо делать на странице, пока файл не будет загружен (то есть: нажав на ссылку «перейти домой» ниже).Есть ли лучшие решения, чем я здесь придумаю?Я знаю, что, возможно, я упускаю что-то действительно простое ... это мой первый трек при настройке приватной страницы загрузки.
<script type="text/javascript">
function redirect_function(loc){
window.location = loc;
}
</script>
<?php
// after form is submitted
$condition_met=check($_POST['email']);
if($condition_met) { ?>
<p>Your file will begin downloading in 5 seconds.</p> <a>go home</a>
<script type="text/javascript">
setTimeout('redirect_function("download.php")', 5000);
</script>
<?php } ?>
Страница с названием (download.php) выглядит следующим образомон зависает на странице ...
<?php
ob_start();
if($some_condition) { // check for authorization, etc
$file='location/file.ext';
header('Content-type: application/force-download');
header('Content-disposition: attachment; filename="'. basename($file) .'"');
header('Content-length: '. filesize($file) );
readfile( $file );
} else {
echo "error message";
}
ob_end_flush();
?>