Pues acabo de hacerte un código que consta de dos archivos (obviamente les puedes cambiar el nombre al que tu quieras y si lo haces ten cuidado de cambiarselo también al link):
ejemplo.php
Código PHP:
<?php
$ruta = "mispruebasphp"; // aquí pones la ruta de la carpeta que contiene los archivos
$fp = opendir($ruta); // abrimos la carpeta
while ( $fichero = readdir($fp) )
{
if ( $fichero == '.' || $fichero == '..' )
{
continue;
}
else
{
echo "<a href = \"descarga.php?ruta=$ruta/$fichero\">$fichero</a><br>\n"; // mostramos los archivos en forma de enlace
}
}
closedir($fp);
?>
descarga.php
Código PHP:
<?php
if ( isset ( $_GET['ruta'] ) )
{
$ruta = $_GET['ruta'];
$partescarp = explode ( "/", $ruta ); // esto servirá para extraer el nombre del archivo
$nombre = array_pop ( $partescarp );
$partesext = explode ( ".", $nombre ); // esto servirá para extraer la extención del archivo
$extencion = array_pop ( $partesext );
$tipo = "Content-type: application/".$extencion;
$guardarcomo = "Content-Disposition: attachment; filename=\"".$nombre."\"";
header($tipo); // indica el tipo de archivo
header($guardarcomo); // este será el nombre con el que se guardará
readfile($ruta); // esta es la ruta desde donde copiar
}
else
{
echo "No ha enviado una variable valida";
}
?>
Espero haberme dado a entender, trate de ser lo más explicito que pude y hojala te sirva de algo o por lo menos te de una idea. Suerte