Guarda, dato che mi sono intrippato con questa cosa ti ho fatto anche l'impaginazione e il download =)
Leggi file/cartelle:
Codice PHP:
<?
//funzione per aprire un cartella verra chiamata solo se la cartella esiste
function open_dir($nome_dir){
//apro la cartella
if (!$open_dir = opendir($nome_dir)){
echo "Cartella non trovata, controlla il percorso del file!";
}
else{
$percorso="$nome_dir";
$size_dir=filesize($percorso)/1000;
$size_dir=round($size_dir,1);
$size_dir=" ( ".$size_dir." Kb )";
echo "Cartella: [b]$nome_dir - $size_dir[/b]
";
//inizio la tabella dei file e cartelle
echo "<table border=\"1\" cellpadding=\"5px\">
<tr>
<td>[b]TIPO[/b]</td>
<td>[b]NOME[/b]</td>
<td>[b]SIZE[/b]</td>
<td>[b]DOWNLOAD[/b]</td>
<td>[b]OPEN[/b]</td>
</tr>
";
while ($read=readdir($open_dir)){
if($read != "." && $read != "..") {
//se è un file
if (strstr($read, ".")){
//prendo la dimensione del file/directory
$percorso_="$nome_dir/$read";
$size_file=filesize($percorso_)/1000;
echo "
<tr>
<td>File</td>
<td>$read</td>
<td>($size_file) Kb</td>
<td><form action=\"download.php\" method=\"post\"><input type=\"submit\" value=\"download\" /><input type=\"hidden\" value=\"$read\" name=\"nome\" /><input type=\"hidden\" value=\"$size_file\" name=\"size\" /></form></td>
<td> - </td>
</tr>
";
}//se è una cartella
else{
echo "
<tr>
<td>Directory</td>
<td>$read</td>
<td> - </td>
<td> - </td>
<td><a href=\"?dir=$nome_dir/$read\">apri</a></td>
</tr>
";
}
}
}
echo "</table>";
}
}
//funzione per andare indietro
function ind($dir){
$array = explode("/",$dir);
$dir = array_pop($array);
$dir = implode("/",$array);
header("location: ?dir=$dir");
}
//se ha inserito qualche directori da caricare ma non è andato indietro mostro il pulsanti
//e mostro la cartella
if (!empty($_GET['dir']) && empty($_GET['ind'])){
$dir = $_GET['dir'];
echo "
<input type=\"submit\" value=\"<\" onClick=\"location.href='?ind=ok&dir=$dir';\" />
";
open_dir($_GET['dir']);
}//se è piena la directori e ha schiacciato sul p0ulsante indietro
//prendo le variabili e faccio partire la funziona indietro
else if (!empty($_GET['dir']) && $_GET['ind'] == 'ok'){
$dir = $_GET['dir'];
ind($dir);
}
else{
echo "<script>alert(\"Errore di indirizzamento!\"); history.go(-1);</script>";
}
?>
download.php
Codice PHP:
<?
$nome_file=$_POST['nome'];
$size_file=$_POST['size'];
if (empty($nome_file) || empty($size_file)){
echo "<script>alert(\"Errore nel download!\"); history.go(-1);</script>";
}
else{
header("Content-type: Application/octet-stream");
header("Content-Disposition: attachment; filename=$nome_file");
header("Content-Description: Download PHP");
header("Content-Length: $size_file");
readfile($nome_file);
}
?>
Se vuoi vederlo funzionante vai qui:
http://wordsbank.altervista.org/prov...?dir=lib/touch
Fai qualche prova a levare la dir o a andare troppo indietro con le pagina =)