Forzar descargas con PHP
12 de Febrero de 2008 por nicohIntroducción
Muchas veces navegando, nos encotnramos con sitios web que contienen enlaces hacia archivos como ser MP3, JPG, PDF, etc.
Cuando hacemos click en estos enlaces, por lo general se abren directamente, o sea, los MP3 en nuestro reproductor de audio, los PDF en el Acrobat Reader (o dentro del navegador), los JPG en el visor de imágenes, etc.
Lo que sucede, es que puede que nosotros queramos que el archivo no se abra automaticamente, sino que aparezca la típica ventana de descarga.
Código
Para lograr el resultado deseado, debemos crear un archivo llamado descargar.php (o como queramos) y ubicarlo en el directorio del hosting donde se encuentran nuestros archivos.
Implementación
El modo de uso es realmente sencillo, solo debemos modificar el destino de nuestro enlace de archivo.jpg a descargar.php?f=archivo.jpg.
Quedando en enlace de la siguiente manera:
La verdad es que es un método muy facil de implementar y que nos brinda una solución frente a este problema.
A mi gusto debería implementarse en los sitios web con enlaces hacia archivos PDF, ya que generalmente cuando abrimos uno o varios de estos, el navegador comienza a ponerse muy lento.
Fuente | DaveMM
ACTUALIZACIÓN
Corey me informa que corrigió un bug de seguridad en su código que permitía la descarga de cualquier tipo de archivos por medio del script, como archivos PHP por ejemplo.
Para corregirlo, usamos el código actualizado:
-
<?php
-
$f = $_GET["f"];
-
?>
Ahora, con el uso de la variable $archivos, podemos facilmente definir las extensiones de los archivos que deseamos permitir descargar.