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
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
I più letti di oggi
- Utilizzare il metodo CountBy di LINQ per semplificare raggruppamenti e i conteggi
- Effettuare il log delle chiamate a function di GPT in ASP.NET Web API
- Chiamare direttamente un numero di telefono con HTML5
- Richiamare programmaticamente le operazioni di aggiornamento, eliminazione e inserimento di FormView, DetailsView e GridView