Galleria fotografica con File System Object

di Gianluca Congiu, in Classic ASP, UserScript, Scripting,

In molti casi aggiornare le gallerie fotografiche gestite attraverso i database risulta essere un lavoro lungo e dispendioso, un'alternativa è organizzare le immagini in cartelle per andarle a leggere direttamente sul disco.
Questo esempio propone un metodo funzionale per creare una galleria fotografica utilizzando l'oggetto FileSystemObject di ASP che permette facilmente di accedere alla struttura delle cartelle.
Replicando la struttura della galleria attraverso la struttura ad albero delle cartelle è possibile creare una galleria fotografica perfettamente funzionante con una manutenzione minima.

<%

Dim subfolder(50) ' elenco delle sottocartelle
Dim files(200) ' elenco dei files
Dim picture(200) ' elenco dei files con l'estensione cercata

'***Assegnazione delle variabili***
' informazioni sul percorso dell'immagine
percorso = Request.QueryString("path")
wwwpercorso = percoso
' Recupera la pagina web corrente
URL = Request.ServerVariables("URL")

' inizializzazione e assegnazione degli indici degli array
  ifolder=1
ifiles=1
iImage=1

'***Valori da modificare***
' assegnazione del tipo di file da visualizzare
 estensione="jpg"
' numero di Thumb per riga
numerothumb=4

Set fs = CreateObject("Scripting.FileSystemObject")

' se il percorso non è stato già scelto, viene impostato sulla cartella corrente
if (percorso = "") then
  wwwpercorso = "./"
  filepath = "./"
else
  filepath = "./" & percorso
end if

' percorso assoluto del file
dbfile = Server.MapPath(filepath)

wwwpath = URL

Set f = fs.GetFolder(dbfile)
Response.Write("<a href=javascript:history.back(1)><B>Precedente</B></A><BR>")
' elenco sottocartelle
Set sf = f.SubFolders

For Each f in sf 'per ogni sottocartella ....
  subfolder(ifolder) = subfolder(ifolder) & f.name
  ifolder=ifolder+1
Next

do while ifolder>1
 'se il percorso non è stato assegnato viene generato automaticamente...
  if percorso="" then
    link = wwwpath & "?PATH=" &(subfolder(ifolder-1))&">" & subfolder(ifolder-1)
  else
     link=wwwpath & "?PATH=" &percorso&"/"&(subfolder(ifolder-1))&">" & subfolder(ifolder-1)
  end if
  ' link alla sottocartella
  Response.Write "<img src=folder.GIF width=30 ><A HREF=" & link & "</A><br>"
  ifolder=ifolder-1
loop

Set fl = fs.GetFolder(dbfile)
Set file = fl.Files
  For Each fl in file
    ' Riempie l'array files con l'elenco dei files
    files(ifiles) = files(ifiles) & fl.name
    ifiles=ifiles+1
 Next

'inserisce nella variabile totalefiles il numero dei file
totalefiles = ifiles
contenuti nella cartella
for x =0 to totalefiles
  'verifica l'estensione di ogni file
  if Right (files(x),3) = estensione then
    picture(iImage)=files(x)
    iImage=iImage+1
  end if
next

' numero delle immagini
record = iImage-1
contenute nella cartella
indice=0

Response.Write("<table width=100% border=0>")
'Viene eseguito finchè esistono file...
do while record > indice
  Response.Write("<tr>")
  i=1
  'stampa immagini per 'numerothumb' volte
  do while ((i<numerothumb+1) and(record > indice))
    Response.Write("<td> ")'inizio colonna
    Response.Write("<div align=center><a href=" & wwwpercorso & "/" & picture(indice+1) & ">")
    Response.write("<img src=" & wwwpercorso & "/" & picture(indice+1) & " width=150 height=114></a></div>")
    Response.Write("<div align=center>" & picture(indice+1) & "</font>")
    Response.Write("</td>")
    indice = indice+1
    i=i+1
  loop
  Response.Write("</tr>")
loop

Response.Write("</table>")

Set fl = Nothing
Set sf = Nothing
set f = Nothing
Set fs = Nothing

%>

Commenti

Visualizza/aggiungi commenti

| Condividi su: Twitter, Facebook, LinkedIn

Per inserire un commento, devi avere un account.

Fai il login e torna a questa pagina, oppure registrati alla nostra community.

Approfondimenti

Nessuna risorsa collegata

I più letti di oggi