Streaming de ficheros zip en php

En Uhuru Labs tenemos varias secciones con archivos descargables. Algunos de ellos son ficheros comprimidos en .zip como MMP, la extensión para VLC que creamos hace ya un año.

El caso es que subimos la versión y no nos dimos cuenta durante bastante tiempo de que teníamos un error grave a la hora de descargar los ficheros comprimidos. Resulta que sí que descargaba un fichero .zip, pero al descomprimirlo este se convertía en un fichero .cpgz y al descomprimir este volvía a aparecer el fichero .zip. Era un bucle infinito de descompresiones!!

El error lo teníamos en la descarga del archivo, ya que utilizamos un script php que, aparte de proporcionar el archivo comprimido según el proyecto y la versión de este, nos avisa por correo de la descarga realizada. En este script ponemos los datos del header y luego vamos leyendo el archivo requerido y mandandolo mediante la orden flush().

Para corregir el error, una vez creados los datos de la cabecera hay que hacer un ob_clean(), limpiando así el buffer de salida antes de empezar a mandar nada.

El código quedaría así:

Una respuesta a “Streaming de ficheros zip en php”

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *