Es recurrente que cuando tenemos un sitio Web, presentamos variados contenidos a nuestros visitantes, ya sea para que visualicen o bien para que descarguen.
Sin embargo, gracias a las diferentes configuraciones de los navegadores más usados (Internet Explorer, Firefox, Safari, Opera, Chrome, etc), ocurre a menudo que algunos contenidos que nosotros dejamos para descarga, sean visualizados dentro del mismo navegador.
Hoy les enseñaremos un pequeño script en PHP para que utilicen en sus sitios, con el cual cuando los usuarios hagan click en un enlace determinado, se forzará la descarga de este contenido en vez de su visualización.
Para conocer todo el detalle, como siempre, los invitamos a seguirnos después del salto.
Como siempre, lo primero:
Con eso claro, vamos, manos a la obra:
Lo que haremos será definir un código PHP en un archivo aparte desde donde podremos forzar las descargas de los contenidos de nuestro sitio Web, pero además para que podamos controlar estas descargas. Para eso:
1.- Lo primero que haremos será crear un archivo PHP en nuestro editor Web. A este archivo lo llamaremos “descarga.php” (sin las comillas) y contendrá el código para forzar las descargas.
2.- En el archivo que creamos, debemos insertar el siguiente código (los comentarios, como siempre, en negrita, cursiva y entre /* y */):
Este código, cada vez que se le llame, forzará la descarga del archivo en cuestión.
3.- Ahora, en cualquier página que necesitemos, basta con que al momento de fijar el enlace para descarga (linkear), lo hagamos de la siguiente forma:
descarga.php?f=nombredelarchivo.extension
Por ejemplo, si tenemos un archivo en formato PDF que queremos que la gente descargue y que tenga por nombre “ejemplo.pdf”, nuestro enlace sería de la siguiente forma:
descarga.php?f=ejemplo.pdf
o si lo vieramos por código HTML:
a href=”descarga.php?f=ejemplo.pdf” (entre etiquetas < y >)
Antes de terminar, algunas notas adicionales:
1.- Recordemos que cada archivo que queramos que los usuarios descarguen, y a su vez forzar esa descarga mediante el código, debe estar definido en el array de descarga.php
2.- Los archivos para descargar, deben estar dentro del mismo directorio que descarga.php, por lo que una buena opción es crear un directorio como bodega de archivos y en ese directorio almacenar descarga.php. Solo debemos fijarnos de hacer correctamente el enlace desde nuestras páginas Web.
Y así de simple, con ese sencillo código podremos forzar descargas de todo tipo desde nuestros sitios Web, además de asegurarnos que los contenidos no se abran en el mismo navegador y controlar que cosas podrán bajar los visitantes desde nuestro sitio.
Recuerden que como siempre, este tutorial ha sido:
Cualquier duda, problema o comentario, pueden dejarnos unas líneas en el área habilitada a continuación.
Esperamos que este tutorial haya sido de utilidad para Uds.
Muchas gracias por leer y será hasta una próxima oportunidad.
5:42:33 pm
Gracias, lo hice en en HTLM. Mi host no soporta PHP 🙁
Aguante ComoLoHago
Jassir Naveas.
Antofagasta, Chile.
2:19:00 pm
Buen consejo!
Una pregunta: ¿Como sería la solución en HTML?
Saludos desde España.
1:04:00 pm
me ocurre lo siguiente:
Warning: Cannot modify header information – headers already sent by (output started at C:\xampp\htdocs\mobile\descarga.php:4) in C:\xampp\htdocs\mobile\descarga.php on line 14
Warning: Cannot modify header information – headers already sent by (output started at C:\xampp\htdocs\mobile\descarga.php:4) in C:\xampp\htdocs\mobile\descarga.php on line 15
¿cómo hago para que funcione?
gracias por adelantado
10:36:05 pm
Warning: Cannot modify header information – headers already sent by (output started at C:\wamp\www\umb_sao\scripts\descarga.php:1) in C:\wamp\www\umb_sao\scripts\descarga.php on line 7
Warning: Cannot modify header information – headers already sent by (output started at C:\wamp\www\umb_sao\scripts\descarga.php:1) in C:\wamp\www\umb_sao\scripts\descarga.php on line 8
EAVB_CABTETMTCH
7:14:41 pm
hay otras formas¿
4:28:05 pm
Alguna forma para hacerlo con javascript?
Gracias de antemano
12:59:09 pm
Oye a la hora de descargar el archivo me da este mensaje de error
Parse error: syntax error, unexpected T_STRING in /home/a4166163/public_html/descarga.php on line 8
me podrias ayudar!
5:57:59 pm
muchas gracias me sirvio
12:38:28 pm
Pero mi problema es que quisiera forzar la descarga de un link o enlace externo.
si existe un link externo a mi web que sea por ejemplo.
http://goxex.miweb.com/files/ejemplo.jpg
Ese archivo no está en mi web sin embargo pongo ese link pero quiero que la descarga sea forzada. ¿Como puedo hacer?
9:40:26 pm
Quisiera saber si esto se puede hacer sin utilizar ninguna tecnología del lado del servidor(PHP, ASP, etc)