Del lado del servidor, obtener avances en el envío de archivos
Pregunta
Básicamente, lo que quiero hacer es comprobar la cantidad de un archivo de mi servidor web ha enviado a un cliente, cuando el cliente está descargando uno. ¿Es esto posible? Qué Apache proporcionar cualquier módulo / extensión que me ayudaría a cumplir mi tarea?
Yo uso una distribución Linux, apache2 y PHP5. Saludos.
Solución 2
resolvió.
Me basta con abrir el archivo con PHP que quiero enviar al cliente.
$fh = fopen($filePath, 'r');
A continuación, calculo el 60% del tamaño del archivo escribiendo
$fileSize = filesize($filePath);
$sizeFirst = floor(($fileSize / 100) * 60);
Ahora la variable $ sizeFirst contiene la longitud del primer 60% del archivo, en un valor numérico. Para calcular el resto 40% utiliza I:
$sizeLast = $fileSize - $sizeFirst;
Ahora puede escribir el primer 60%, hacer mi acción, y luego escribir outh el resto 40%.
$dataFirst = fread($fh, $sizeFirst);
echo($dataDirst);
// Do my action here.
$dataSecond = fread($fh, $sizeSecond);
echo($dataSecond);
exit();
Necesito fijar la cabecera (); antes de escribir esto, el contenido de longitud, Content-type y Content-Disposition se debe establecer con el fin de enviar una cabecera y fileContent válida para el cliente.
Esperamos que ayude a alguien.
Otros consejos
navegador proporciona esta funcionalidad si el archivo tiene configurada la cabecera correcta "Content-length". ¿Por qué desea implementar esto en su página?