La idea de este tip, es explicar como hacer que cualquier tipo de archivo (siempre que se tengan permisos de lectura sobre el mismo ) sea descargable. Es muy sencillo y sólo consta de unas pocas lineas de código.
<?php //Código generado por php.net $f = $_GET["file"]; header("Content-type: application/octet-stream"); header("Content-Disposition: attachment; filename="$f"n"); $fp=fopen("$f", "r"); fpassthru($fp); ?>
Creamos un archivo que contenga el código arriba descripto, lo guardamos, y, para probar si funciona podemos hacer lo siguiente:
Llamamos el archivo, a modo de ejemplo, “descarga.php”. Creamos un archivo html, al que llamamos “ejemplo.html”, que contenga un “Hola mundo!”.
Ahora bien, ubicamos los dos archivos dentro del mismo directorio y llamamos a descarga.php de la siguiente forma (suponiendo que ambos archivos esten en el raiz de nuestro servidor local):
http://localhost/descarga.php?file=ejemplo.html
De este modo podremos descargar “ejemplo.html”. Cabe aclarar que esto es aplicable a cualquier tipo de archivo, siempre teniendo en cuenta que debemos tener permisos de lectura al menos sobre el mismo.