Ver Mensaje Individual
  #1 (permalink)  
Antiguo 06/10/2011, 09:47
7sistemas
 
Fecha de Ingreso: marzo-2010
Ubicación: Buenos Aires
Mensajes: 59
Antigüedad: 14 años, 1 mes
Puntos: 2
Forzar descargas - error

Buenas tardes,

Tengo el siguiente script que lo utilizo para forzar descargas. Hace unos días, he cambiado de servidor, y ahora, en lugar de descargar el archivo, lo muestra en pantalla (sea el que sea: zip, pdf, exe, etc), lo cual es un error.

Desde ya, muchas gracias.


Código PHP:
<?php
    $ruta 
"dn/";
    
$error false;
    
$extensiones = array("zip""pdf""msi""exe");
    
$mime = array("pdf" => "application/pdf""zip" => "application/zip""msi" => "application/octet-stream""exe" => "application/octet-stream");
    
$archivo $_GET["archivo"];
    
$archivotmp explode(".",$archivo);
    
$archivoExt strtolower($archivotmp[count($archivotmp)-1]);
    if (
strpos($archivo,"/") !== false) { $error 1; }
    if (!
in_array($archivoExt$extensiones)) { $error 2; }
    if (
$error === false)
    {    
        
header("Content-type: " $mime[$archivoExt]);
        
header('Content-Disposition: attachment; filename="'.$archivo.'"');
        
header("Content-Transfer-Encoding: binary");
        
$fp fopen($ruta.$archivo"r");
        
fpassthru($fp);
        
fclose($fp);
    }
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html;    charset=iso-8859-1">
        <title>Descargas</title>
    </head>
    <body>
        <?php
           
if($error !== false)
           {
                echo 
'<h3>Error</h3><p>Ha ocurrido un error. Puede ser debido a que no tiene autorizacion para descargar ese archivo, o que ese archivo no existe.</p>';
           }
        
?>
    </body>
</html>

Última edición por 7sistemas; 06/10/2011 a las 09:48 Razón: Error ortográfico.