otra - Cómo detectar cuando un usuario ha terminado de descargar un archivo en php
incluir archivo php en html (2)
Tengo una página php que maneja los requets para descargas de archivos. Necesito poder detectar cuando un archivo se ha descargado con éxito. ¿Cómo puede hacerse esto? Quizás haya algún medio para detectar este lado del cliente y enviar una confirmación al servidor.
Gracias.
Editar: Por manejo, quiero decir que la página está haciendo algo como esto:
$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);
Lo que dijo Treb, pero debo agregar que puede verificar si el cliente todavía está escuchando durante la descarga con connection_status () .
No se olvide de flush()
después de que haya escrito datos para el cliente, esto ayuda a detectar si la conexión aún está activa.
Maneje la descarga en un script php separado (mejor haga un poco más que solo readfile($file);
también puede proporcionar la capacidad de reanudar descargas como en esta pregunta ). Luego, en este script, cuando lee el último bloque y lo envía, sabe que se envió todo el archivo. Esto no es lo mismo que saber que todo se recibió, pero debería ser suficiente para la mayoría de los escenarios.