questo è il codice che ho utilizzato io
	codice:
	<%
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("cartella")
' 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")
  filepath = "public/" & percorso
' percorso assoluto del file
dbfile = Server.MapPath(filepath)
wwwpath = URL
Set f = fs.GetFolder(dbfile)
' 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>
"
  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=600 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=javascript:PrevFoto('" & filepath & "/" &  picture(indice+1) & "')>")
    Response.write("[img] & filepath & [/img]</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
%>
 
basta che passi la cartlella da leggere come parametro url, ad es.
pagina.asp?percorso=gita10
per leggere tutte le foto della cartella /public/gita10
le miniature delle foto vengono poi mostrate in una griglia
con 4 foto per riga (campo personalizzabile)
e cliccando sulla miniatura vedi la foto ingrandita.
Per l'ingrandimento ho utilizzato il javascript PrevFoto:
	codice:
	<script LANGUAGE="JavaScript">
<!--
<!-- Begin
function PrevFoto(img){
  foto1= new Image();
  foto1.src=(img);
  Controlla(img);
}
function Controlla(img){
  if((foto1.width!=0)&&(foto1.height!=0)){
    viewFoto(img);
  }
  else{
    funzione="Controlla('"+img+"')";
    intervallo=setTimeout(funzione,20);
  }
}
function viewFoto(img){
  largh=foto1.width+20;
  altez=foto1.height+25;
  stringa="width="+largh+",height="+altez;
  finestra=window.open(img,"",stringa);
}
//  End -->
function MM_displayStatusMsg(msgStr) { //v1.0
  status=msgStr;
  document.MM_returnValue = true;
}
//-->
</script>
 
che devi mettere nel tag head ma puoi anche usare
altri tipi di preview come, ad esempio, il citato lightbox.
Questo sistema, come ti ho detto, è uno dei tanti che puoi
utilizzare. E' comodo in quanto puoi creare un evento in pochi
secondi e caricare molte foto in ftp in un colpo solo.
Ovviamente manca la parte per creare l'evento ma credo 
che non dovresti avere problemi: con un modulo crei
un nuovo evento con i campi che ti servono
(ad es. data, luogo, descrizione) e il nome della
cartella dove andranno salvate le immagini.
Nella pagina che salva il record nel database, alla fine
dell'update del database, crei la cartella con questo codice:
	codice:
	<%
'dichiarazione variabili
Dim FSO, dir
'acquisizione dati da form
dir= Request.Form("dir")
'creazione istanza del File Scripting Object
SET FSO = Server.CreateObject("Scripting.FileSystemObject")
'creazione della cartella 
' - dir: il nome della nuova cartella
FSO.CreateFolder(Server.MapPath("public\" & dir)
'chiusura e annullamento dell'istanza
SET FSO = NOTHING
%>
 
ed il gioco è fatto....
ciao
luca