У меня есть очень простой и стандартный скрипт принудительной загрузки PHP.
Как проверить, завершена ли загрузка, чтобы уведомить пользователя о клиентской стороне?Мне даже не нужно показывать прогресс в режиме реального времени, меня интересует только очень конкретное событие: «когда загрузка завершится».Основываясь на моих исследованиях, кажется, что это должно быть определено на стороне сервера, поскольку нет события ondownloadready
, и я не думаю, что возможно перехватить события браузера.
Так что, похоже, мойЛучше всего сравнить байты, отправленные с общим количеством байтов, с каким-либо взаимодействием между клиентом и сервером.Как бы я проверил байты, отправленные с сервера для принудительной загрузки PHP?Есть ли какая-то глобальная переменная PHP, которая хранит эти данные, которые я могу пропинговать с помощью AJAX?
<?php
header("Content-Type: video/x-msvideo");
header("Content-Disposition: attachment; filename=\"".basename($realpath)."\";");
...
$chunksize = 1 * (1024 * 1024); // how many bytes per chunk
if ($size > $chunksize) {
$handle = fopen($realpath, 'rb');
$buffer = '';
while (!feof($handle)) {
$buffer = fread($handle, $chunksize);
echo $buffer;
ob_flush();
flush();
}
fclose($handle);
}
else {
readfile($realpath);
}
exit();
?>
Причина, по которой мне нужно это:
Для проекта, над которым я работаю,требуется, чтобы после начала загрузки страница перенаправляла (или отображала) страницу «Пожалуйста, подождите, пока загрузка завершится».Затем, после его завершения, он должен перенаправить (или отобразить) страницу «Ваша загрузка завершена, спасибо».Я открыт для других идей, которые могли бы достичь того же результата.