¿Es posible en PHP obtener un recuento de la cantidad de bytes transmitidos al cliente? Por ejemplo, si estoy entregando un archivo de 10 MB, ¿hay alguna forma de averiguar si se enviaron los 10 MB al cliente o si el cliente interrumpió la transferencia parcialmente? Sé que Apache lo registrará luego, pero me gustaría acceder a los datos en PHP.PHP: determine cuántos bytes se enviaron a través de http
6
A
Respuesta
13
Eche un vistazo a la función ignore_user_abort
y connection_abort
.
11
Esto es lo que terminé haciendo (gracias Gumbo):
ignore_user_abort(true);
$handle = fopen($file_path, 'r');
while (! feof($handle)) {
echo fread($handle, 4096);
if (connection_aborted()) {
$transfer_success = false;
$bytes_transferred = ftell($handle);
break;
}
}
fclose($handle);
Cuestiones relacionadas
- 1. Detecta que los encabezados http de asp.net ya se enviaron
- 2. ¿Cuántos bytes por inodos?
- 3. ¿Cuántos bytes ocupará una cadena?
- 4. ¿Cuántos bytes tiene una cadena
- 5. Cookie a través de HTTP y HTTPS en PHP
- 6. Enviando un archivo a través de HTTP PUT en PHP
- 7. ¿Cuántos bytes usa Oracle al almacenar un solo carácter?
- 8. php: determine dónde se llamó a la función desde
- 9. Http get request tamaño de paquete en bytes
- 10. Servidor no puede establecer el tipo de contenido después de que se enviaron encabezados HTTP
- 11. ¿Cuántos bytes toma una cadena? ¿Un char?
- 12. Cadena a matriz de bytes en php
- 13. Iterar a través de NSData bytes
- 14. ¿Cuántos datos pueden enviarse a través de $ _GET
- 15. PHP: Determine las imágenes corruptas visualmente (aún válidas) descargadas a través de Curl con GD/Imagemagick
- 16. Descargar HTTP a través de sockets (C)
- 17. ¿Descargue un archivo a través de HTTP en una matriz de bytes en C#?
- 18. Transferencia de archivos a través de HTTP
- 19. http to https a través de .htaccess
- 20. inteligente HTTP a través de IIS
- 21. ¿Cómo publicar un conjunto de bytes a través de RestTemplate
- 22. C# enviar imagen a través de HTTP
- 23. ifstream :: read no dice cuántos bytes realmente lee?
- 24. Determine la codificación de entrada examinando los bytes de entrada
- 25. Obtener fecha de creación de archivo a través de HTTP
- 26. PHP - Desplazamiento a través de JSON file_get_contents
- 27. Determine dónde se ha llamado una función con PHP
- 28. PHP: HTTP o HTTPS?
- 29. Copie la imagen del servidor remoto a través de HTTP
- 30. Cambiar la URL a través de PHP
desea hacer una progressbar o algo por el estilo? – Natrium
solo quería marcar los archivos como completamente descargados, luego eliminarlos de una lista. el problema era file_get_contents(), no capta la interrupción del usuario. si usa fread() y lo atraviesa, puede atraparlo y luego usar ftell() para calcular aproximadamente cuántos bytes se enviaron. (disculpa la publicación de la pregunta cuando terminé averiguando por mi cuenta) – Jay