Descargando archivo pesado servido por PHP

PHP – Servir archivo grande para su descarga

En este post te mostraré la manera óptima que utiliza poca memoria para servir un archivo con PHP y que el usuario lo descargue, sin importar el peso del archivo.

Podemos usar readfile para forzar la descarga de un archivo con PHP, pero si el archivo es muy grande y la memoria no es suficiente, habrá problemas como:

PHP Fatal error: Allowed memory size of 2097152 bytes exhausted (tried to allocate 2998272 bytes)

Por ello es que en este post te enseñaré cómo servir un archivo grande con PHP para su descarga, utilizando poca memoria y leyendo el archivo en fragmentos, con una alternativa a readfile.

(más…)

Forzar descarga de archivo con PHP y encabezados HTTP

Forzar la descarga de cualquier archivo con PHP y readfile

Obligar descarga de un fichero sin importar su extensión

Cuando un navegador web visita un archivo que entiende, lo muestra. Por ejemplo, si encuentra un archivo con extensión .txt entonces lo sirve en lugar de mostrar el diálogo de descarga.

Pues hoy veremos cómo servir un archivo con PHP pero forzar su descarga sin importar la extensión. No importa si es un exe, html o txt, todo será forzado a descargarse.

Forzar descarga de archivo con PHP y encabezados HTTP

Forzar descarga de archivo con PHP y encabezados HTTP

Para esto usaremos la función readfile.

Este tutorial me recuerda al que muestra cómo proteger el acceso a imágenes con Apache y PHP.

(más…)