Ver Mensaje Individual
  #5 (permalink)  
Antiguo 13/03/2008, 09:30
Avatar de GatorV
GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años
Puntos: 2135
Re: ¿Ficheros fantasmas? o_O

Haz verificado que no tengas espacios antes? Prueba hacer esto:
Código PHP:
function dl_file($file){

    
//First, see if the file exists
    
if (!is_file($file)) { die("<b>404 File not found!</b>"); }

    
//Gather relevent info about file
    
$len filesize($file);
    
$filename basename($file);
    
$file_extension strtolower(substr(strrchr($filename,"."),1));

    
//This will set the Content-Type to the appropriate setting for the file
    
switch( $file_extension ) {
          case 
"pdf"$ctype="application/pdf"; break;
      case 
"exe"$ctype="application/octet-stream"; break;
      case 
"zip"$ctype="application/zip"; break;
      case 
"doc"$ctype="application/msword"; break;
      case 
"xls"$ctype="application/vnd.ms-excel"; break;
      case 
"ppt"$ctype="application/vnd.ms-powerpoint"; break;
      case 
"gif"$ctype="image/gif"; break;
      case 
"png"$ctype="image/png"; break;
      case 
"jpeg":
      case 
"jpg"$ctype="image/jpg"; break;
      case 
"mp3"$ctype="audio/mpeg"; break;
      case 
"wav"$ctype="audio/x-wav"; break;
      case 
"mpeg":
      case 
"mpg":
      case 
"mpe"$ctype="video/mpeg"; break;
      case 
"mov"$ctype="video/quicktime"; break;
      case 
"avi"$ctype="video/x-msvideo"; break;

      
//The following are for extensions that shouldn't be downloaded (sensitive stuff, like php files)
      
case "php":
      case 
"htm":
      case 
"html":
      case 
"txt": die("<b>Cannot be used for "$file_extension ." files!</b>"); break;

      default: 
$ctype="application/force-download";
    }
    if( 
headers_sent() )  {
            die( 
"Las cabeceras ya fueron enviadas!!" );
    }
    
//Begin writing headers
    
header("Pragma: public");
    
header("Expires: 0");
    
header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
    
header("Cache-Control: public"); 
    
header("Content-Description: File Transfer");
    
    
//Use the switch-generated Content-Type
    
header("Content-Type: $ctype");

    
//Force the download
    
$header="Content-Disposition: attachment; filename=".$filename.";";
    
header($header );
    
header("Content-Transfer-Encoding: binary");
    
header("Content-Length: ".$len);
    
readfile($file);
    exit;
}

?> 
Saludos.