Определить, завершена ли загрузка - PullRequest
4 голосов
/ 05 февраля 2011

У меня есть очень простой и стандартный скрипт принудительной загрузки 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();
     ?>

Причина, по которой мне нужно это:

Для проекта, над которым я работаю,требуется, чтобы после начала загрузки страница перенаправляла (или отображала) страницу «Пожалуйста, подождите, пока загрузка завершится».Затем, после его завершения, он должен перенаправить (или отобразить) страницу «Ваша загрузка завершена, спасибо».Я открыт для других идей, которые могли бы достичь того же результата.

1 Ответ

1 голос
/ 05 февраля 2011

Проверьте это Sitepoint Forum Post , в котором описывается решение.

По сути, как только цикл прервется, все готово!

Вот полный поток, описывающий использование опроса AJAX для определения завершения загрузки: http://www.sitepoint.com/forums/showthread.php?t=618233

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...