Ver Mensaje Individual
  #1 (permalink)  
Antiguo 19/01/2013, 17:28
mr_mojo_risin
 
Fecha de Ingreso: agosto-2012
Ubicación: Guanajuato
Mensajes: 12
Antigüedad: 12 años, 3 meses
Puntos: 2
Información Eliminar archivo de servidor despues de descargar

Hola de nuevo señores.

El tema del que quiero hablar no es para nada nuevo, sin embargo no he encontrado la solución adecuada a mi problema en los posts que he investigado por la web. La situación es la siguiente:

Implementé una interfaz que permite a los usuarios descargar carpetas de archivos alojadas en el servidor web. Primero las comprimo en un archivo temporal de formato zip, luego las mando al búfer para ser descargadas y finalmente elimino el archivo zip generado.

Este es el código que utilizo, ya muy comentado, por cierto:
header("Content-disposition: attachment;filename=$elem.zip");
header("Content-Type: application/octet-stream");
readfile("./FTP/TempZip/temp_$cod.zip");//transferir el archivo zip al bufer

unlink("./FTP/TempZip/temp_$cod.zip");//eliminar el archivo zip previamente transferido

El resultado que obtengo depende del tamaño del archivo zip generado: he intentado descargar un archivo zip de 370 KB y el borrado se realiza correctamente, pero con otro de 3.10 MB no es posible. Esto me causa un verdadero problema, ya que el tamaño promedio de las carpetas a descargar es de hasta 25 MB.

Incluso la función register_shutdown_function("borrado") que comentaba 'manuelsm' en su tema del 2009 "Borrar archivo del servidor tras su descarga" me da exactamente el mismo resultado.

Gracias por sus comentarios.