Forzar descarga en PHP
Miércoles, Abril 30th, 2008Ha veces nos ha pasado que hemos colocado en nuestra web un archivo para bajar, pero este se abría por defecto en el navegador, o con algún programa predeterminado que teníamos instalado. Para forzar su descarga y evitar así esta tediosa situación para alguno de nuestros usuarios, podemos usar el siguiente script en PHP:
Ver Código PHP | |
<?php $extensiones = array("rar", "zip", "jpg", "gif"); // extensiones que permitiremos $f = $_GET["f"]; if(strpos($f,"/")!==false){ die("No puedes navegar por otros directorios"); } $ftmp = explode(".",$f); $fExt = strtolower($ftmp[count($ftmp)-1]); if(!in_array($fExt,$extensiones)){ die("<b>ERROR!</b> no es posible descargar archivos con la extensión $fExt"); } header("Content-type: application/octet-stream"); header("Content-Disposition: attachment; filename=\"$f\"\n"); $fp=fopen("$f", "r"); fpassthru($fp); ?> | |
Por ejemplo, si este script lo llamamos “bajar.php”, pues un link de ejemplo seria:
http://miweb.com/bajar.php?f=miarchivo.rar
