Para leer el contenido del directorio puede utilizar readdir() y utilizar una secuencia de comandos, en mi ejemplo download.php
, para descargar archivos
if ($handle = opendir('/path/to/your/dir/')) {
while (false !== ($entry = readdir($handle))) {
if ($entry != "." && $entry != "..") {
echo "<a href='download.php?file=".$entry."'>".$entry."</a>\n";
}
}
closedir($handle);
}
En download.php
puede forzar navegador para enviar los datos de descarga, y el uso de basename() para asegurarse de que el cliente no pasa a otro nombre de archivo como ../config.php
$file = basename($_GET['file']);
$file = '/path/to/your/dir/'.$file;
if(!$file){ // file does not exist
die('file not found');
} else {
header("Cache-Control: public");
header("Content-Description: File Transfer");
header("Content-Disposition: attachment; filename=$file");
header("Content-Type: application/zip");
header("Content-Transfer-Encoding: binary");
// read the file from disk
readfile($file);
}
¿No es esto manejado por el navegador? – SomeKittens
, pero ¿cómo obtengo el navegador para comenzar la descarga? –
Proporcione un enlace al archivo? – Nick