upload — Как обнаружить прерванное соединение с PHP PUT

Я написал функцию загрузки PHP, которая использует HTTP PUT, используя вызовы XHR2 из браузера. Все отлично работает, но теперь мне также нужно определить, отменил ли пользователь загрузку, закрыл браузер или просто пропало сетевое соединение.

И мне очень и очень трудно достичь этого, вплоть до того момента, когда я начинаю думать, что это просто невозможно, поэтому любые идеи будут высоко оценены!

Ядро моего загружаемого кода на самом деле ничего особенного и выглядит примерно так:

$putdata = fopen("php://input", "r");
$fp = fopen($tempPath, "a");
while ($data = fread($putdata, 1024)) { fwrite($fp, $data); }
fclose($fp);
fclose($putdata);

Первая мысль была просто использовать register_shutdown_function, но эта функция вызывается только через пять минут, что слишком поздно. Также connection_abortedне работает. Я действительно не могу вывести что-либо клиенту во время чтения данных, даже заголовок или мой ответ после того, как это терпит неудачу с ошибкой «заголовки уже отправлены». Теперь мне кажется, что сценарий просто ожидает в цикле while данных, которые больше не поступают, трясясь пальцами.

Кажется, я сейчас застрял. Есть идеи?

0

Решение

Вы должны проверить ignore_user_abort с connection_aborted или же connection_status.

0

Другие решения

Других решений пока нет …