У меня есть php-страница, которая обрабатывает реквизиты для загрузки файлов. Мне нужно определить, когда файл был успешно загружен. Как это может быть сделано? Возможно, есть некоторые способы обнаружения этой клиентской стороны, а затем отправка подтверждения на сервер.
Благодарю.
Изменить: по ручке я имею в виду, что страница делает что-то вроде этого:
$file = '/var/www/html/file-to-download.xyz'; header('Content-Type: application/octet-stream'); header('Content-Length: ' . filesize($file)); header('Content-Disposition: attachment; filename=' . basename($file)); readfile($file);
Обрабатывайте загрузку в отдельном php-скрипте (лучше сделайте немного больше, чем просто readfile($file);
вы также можете предоставить возможность возобновлять загрузки, как в этом вопросе ). Затем в этом скрипте, когда вы читаете последний блок и отправляете его, вы знаете, что весь файл был отправлен. Это не то же самое, что знать, что все было получено, но этого достаточно для большинства сценариев.
Что сказал Треб, но я должен добавить, что вы можете проверить, продолжает ли клиент прослушиваться во время загрузки с помощью connection_status () .
Не забудьте flush()
после того, как вы написали данные клиенту, это помогает обнаружить, что соединение все еще работает.