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 última fila sobran columnas, creamos celdas vacías*/
for ($j = 0; $j < ($numcolumnas - $resto); $j++){
echo "<td></td>";
}
echo "</tr>";
}
}
echo "</table>";
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);
Muchas gracias y saludos.
Marx.