Script php gratuito per listare il contenuto di una directory

Ecco un comodo e leggero script php che permette il listing di una qualsiasi directory.

Per far funzionare questo script basta scaricarlo e uplodarlo nella directory di cui vogliamo avere un listing completo.
Ad ogni file associerà un’icona e segnalerà il peso e la data di creazione.

Per scaricare il relativo file basterà cliccare sull’icona del dischetto vicino al file.
Questo script risulta molto utile ad esempio quando dobbiamo rendere visibile il contenuto di una directory agli utenti.
Ovviamente lo script listerà tutti i files e le directory contenute tranne se stesso.

Inoltre a fine pagina lo script presenterà l’occupazione totale dei files nella directory.
Lo script puo essere facilmente customizzabile tramite css e il suo uso è completamente gratuito.
Nel sito dell’autore troverete anche dei semplici demo che dimostrano le funzionalità dello script

:: VAI AL SITO ::

CONDIVIDI
ARTICOLI CORRELATI
18 commenti a “Script php gratuito per listare il contenuto di una directory”

Come mai nell’elenco dei file presenti nella cartella non mi restituisce il nome del file stesso ma solo la sua estensione?
(icona .estensione)

Ringrazio

Inviato da Roberto il 20 novembre 2008 alle 14:59

sosituisci questa porzione di codice (righe 211-212)

$item[‘name’] = $info[‘filename’];
$item[‘lname’] = strtolower($info[‘filename’]);

con questa:

$miofile = explode(“.”,basename($file));
$item[‘name’] = $miofile[0];
$item[‘lname’] = strtolower($miofile[0]);

il fatto che non legga filename dipende dalla versione di php e se è stata implementata la funzione pathinfo

Inviato da Maurizio il 14 maggio 2009 alle 11:15

Cambiando il codice originale con il tuo in effetti si visualizza il nome del file ma viene visualizzata l’estensione 2 volte (es: documento.doc.doc).Come si risolve?.Grazie

Inviato da Massimo il 22 maggio 2009 alle 22:44

#controlla che “Organize file info” sia così:

$miofile = explode(“.”,basename($file));

$item[‘name’] = $miofile[0];

$item[‘lname’] = strtolower($miofile[0]);

$item[‘ext’] = $info[‘extension’];
if($info[‘extension’] == ”)
$item[‘ext’] = ‘.’;
$item[‘bytes’] = $stat[‘size’];
$item[‘size’] = bytes_to_string($stat[‘size’], 2);
$item[‘mtime’] = $stat[‘mtime’];

e che il costrutto di base della variabile $item[‘link’] sia questo:

$item[‘link’] = ‘‘.$item[‘name’].’.’.$item[‘ext’].’‘;

Inviato da Maurizio il 23 maggio 2009 alle 09:05

il codice di mambro mi legge la variabile come un ipertesto quindi devo scriverla in un altro modo per stampare il codice, vediamo se funziona

$item[‘link’] = ‘<a href="’.$item[‘name’].’.’.$item[‘ext’].’">’.$item[‘name’].’.’.$item[‘ext’].'</a>’;

Inviato da Maurizio il 23 maggio 2009 alle 09:10

Grazie Maurizio per la risposta, la porzione di codice “Organize file info”
in effetti e’ cosi’ come tu la hai editata . Cambiando pero’la variabile come ipertesto mi genera il seguente errore:Parse error: syntax error, unexpected T_STRING in ….
Grazie

Inviato da Massimo il 23 maggio 2009 alle 14:38

C’è un errore di battitura controlla che nel codice ci siano gli apici corretti, ovvero: ribatti tutti gli apici singoli e doppi, la costruzione del link corretta la trovi nel post delle 9:10, ma se fai copia e incolla ti da errore perché così copi anche le impostazioni del foglio di stile di questa pagina web e di conseguenza cambia la codifica ascii e anche se i gli apici sembrano uguali non sono la stessa cosa. Infine conta gli apici, tanti ne apri tanti ne devi chiudere e con ordine, immagina che siano delle parentesi.

Un esempio {[(-)]} è come ””‘-‘””

Inviato da Maurizio il 23 maggio 2009 alle 15:40

Risolto , grazie ancora.

Inviato da Massimo il 24 maggio 2009 alle 10:24

may I change standard images? how? where? tks in advance ; )

Inviato da diego il 29 maggio 2009 alle 07:17

the images are encoded into the script with MIME base64, the php function “base64_decode” — Decodes data and print the images, if you want to change the images you must change the code mime64 with that of the image that you would like to change.

Ciao

Maurizio

Inviato da Maurizio il 29 maggio 2009 alle 09:52

Ciao…ho un problema: non riesco a vedere le icone. Se visiti il sito che ho fatto e clikki su Appunti poi 2009-10 capisci subito…eppure nel sito che hai linkato le icone le vedo….
Grazie infinite!!

Inviato da Enrico il 30 aprile 2010 alle 22:45

Presumo che dipenda dal fatto che hai fatto un’include in joomla! la ricerca dell’icona punta direttamente al file “contenutocartella.txt?image=pdf”, da qui ci sono due scuole di pensiero, la prima che php non ti interpreta correttamente il contenuto del file di testo incluso, ma lo ritengo poco probabile, in alternativa potrebbe darsi che in configurazione di joomla! o in phpini o nel server non hai abilitato le funzioni base64_decode, ovvero la modalità di traslitterazione delle immagini tipica della posta elettronica.

Possibili suggerimenti:
Nell’header della pagina mancano le righe per impostare il tipo MIME e la cache immagine anche se nello script ci sono e sono queste:
// Set the mimetype and cache the image for a year so we don’t have to call them again.
header(“Content-type: image/png”); # tipo immagine
header(‘Expires: ‘ . gmdate(‘D, d M Y H:i:s’, time() + 60 * 60 *24 * 365) . ‘ GMT’); # cache immagine
non vengono stampate nell’header, joomla dovrebbe restituirti un errore quando provi ad inserire nell’header una nuova riga, ma probabilmente viene intercettato e stampa la pagine senza le righe incriminate, comunque prova ad aggiungerle manualmente.

Se ancora non funziona e non riesci a trovare come attivare la visualizzazione base64
Prova a sostituire “echo base64_decode(‘ blablabla’);” con l’icona (png) equivalente “echo (‘miaicona.png’);” senza virgolette mi raccomando l’unico svantaggio è quello che in ogni cartella devi portarti dietro le icone, o altrimenti fai una cartella nella radice principale del sito e metti il percorso assoluto nello script.

Inviato da Maurizio il 2 maggio 2010 alle 12:52

intanto complimenti per la rapidità ed efficienza! Ho provato in mille modi ad attivare base64_decode ma non ho trovato da nessuna parte tale voce. solo nella configurazione globale-sistema ho trovato “Controllo MIME Types” ma era già attivo. Rimane un ultimo tentativo prima di mettere io manualemnte le singole icone am ho bisogno di una tua risposta su quello che ahi scritto: tra gli head devo riscrivere questo?
// Set the mimetype and cache the image for a year so we don’t have to call them again.
header(“Content-type: image/png”); # tipo immagine
header(‘Expires: ‘ . gmdate(‘D, d M Y H:i:s’, time() + 60 * 60 *24 * 365) . ‘ GMT’); # cache immagine

Inviato da Enrico il 5 maggio 2010 alle 12:32

mmmh il sistema mi nasconde i tag quindi provo a scriverli senza sintassi, all’inizio ed alla fine di ogni tag sostituisci maggiore con > e minore con <
Questo è l'inizio del tuo header:
minoreheadmaggiore
minoremeta http-equiv="content-type" content="text/html; charset=utf-8" /maggiore

prova a sostituirlo con questo:
minoreheadmaggiore
minoremeta http-equiv="X-UA-Compatible" content="IE=7" /maggiore
minoremeta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"maggiore
minoremeta http-equiv="Content-Type" content="image/png" /maggiore

Ti faccio aggiungere la compatibilità per ie8
ti faccio sostituire la codifica dei caratteri con quella europea se vedi che le lettere accentate vengono sostituite da caratteri strani rimetti il charset a utf-8, si vede che la collazione di mysql non supporta la codifica.
infine aggiungi la tipologia di immagine, spero funzioni…

Inviato da Maurizio il 5 maggio 2010 alle 13:33

Ciao!!! ho sostituito come dici tu ma mi manca l’ultima parte “infine aggiungi la tipologia di immagine” e il risultato non cambia….Cosa devo fare per quello che mi suggerisci? scusami….ma avrai capito che non me ne intendo…

Inviato da Enrico il 5 maggio 2010 alle 20:05

Salve a tutti, innanzitutto ringrazio per questo articolo perchè trovo questo script molto utile.

Volevo chiedere se esiste un modo per aggiungere il contatore di downloads accanto ai link listati nella pagina.

Grazie

Inviato da beatrice il 1 aprile 2011 alle 14:20

ciao!
io avrei un problema, non riesco a visualizzare lo script, prendo il file index.php lo inserisco nella cartella di esempio image, e quando lo apro con firefox mi restituisce una schermata di codice e non mi visualizza nessuna lista
sapete aiutarmi??

Inviato da Matto il 14 aprile 2011 alle 15:45

Salve e complimenti peri il post e auguri di buon anno!
anch’io non riesco a visualizzare… esce una schermata di codice..!!? premetto che lo ssto testando in locale con “wamp” + “wordpress”..!

grazie mille

Inviato da Piscione75 il 5 gennaio 2012 alle 10:10
Lascia un commento

Captcha - risolvi l\'operazione per inviare il commento * Time limit is exhausted. Please reload CAPTCHA.