Ver Mensaje Individual
  #1 (permalink)  
Antiguo 23/02/2012, 18:33
marx-pola
 
Fecha de Ingreso: mayo-2002
Ubicación: Capital Federal
Mensajes: 630
Antigüedad: 22 años
Puntos: 1
Descarga de archivos me dice que están corruptos

Hola a todos! Tengo un problema con este código para descargar archivos de mi web. Cuando descargo por ejemplo archivos pdf me dice que está corrupto. ¿Por qué puede ser?

Acá el código:
descargas.php
Código PHP:
    $the_array = Array();
    
$handle opendir('descargas/.');

echo 
"<table border='0' width='500'>";
  
$numcolumnas 2;
  if (
$the_array 1) {
      
$i 1;

    while (
false !== ($file readdir($handle))) {
       if (
$file != "." && $file != "..") {
       
$the_array[] = $file;
       }
    }
    
closedir($handle);
    
sort ($the_array);
    foreach(
$the_array as $val){

      
$resto = ($i $numcolumnas);
          if(
$resto == 1){ /*si es el primer elemento creamos una nueva fila*/
      
echo "<tr>";
      }
     echo 
"<td height='27' class='arial-11pxNG'>";
       echo 
"<a href=\"file.php?file=$val\">$val</a><br>";

     echo 
"</td>";/*mostramos el valor del campo especificado*/
      
if($resto == 0){/*cerramos la fila*/
      
echo "</tr>";
      }
      
$i++;
      }
     if(
$resto != 0){/*Si en la &uacute;ltima fila sobran columnas, creamos celdas vac&iacute;as*/
          
for ($j 0$j < ($numcolumnas $resto); $j++){
      echo 
"<td></td>";
      }
      echo 
"</tr>";
      }
  }
echo 
"</table>"
file.php
Código PHP:
$files $_GET['file'];

$file "descargas/".$files;

$extensiones = array("jpg""jpeg""png""pdf""xls");
    
$file $_GET["file"];
    if(
strpos($file,"/")!==false){
        die(
"No puedes navegar por otros directorios");
    }
    
$ftmp explode(".",$file);
    
$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=\"" $file "\"\n");
header("Content-Length: " strlen ($file) );
readfile($file);
$fp=fopen("$file""r");
fpassthru($fp); 
¿Alguna sugerencia del xq no bajan los archivos?

Muchas gracias y saludos.
Marx.
__________________
"Todo lo que somos es el resultado de lo que hemos pensado". Budda.