Prima di tutto vorrei chiedere ai più esperti se è possibile visualizzare più immagini all'interno della pagina adottando l'oggetto stream di ADO.
Se questo è possibile vi sottopongo il problema.
Ho realizzato uno script per la visualizzazione di immaggini, dato un percorso.
Ora se provo a creare una galleria di più immagini riesco a visualizzare solo la prima immagine data.
Ho letto che tra i metodi dell'oggetto stream c'è il "position" che serve a riavvolgere lo stream a data posizione in byte. Pensavo che settando a 0 il position potevo ricaricare lo stream. Nulla, sicuramanete la mia "pensata" è errata.
Per comodità posto il codice:
Mi visualizza solo l'immagine1.jpg e non la seconda.codice:<% Sub visualizzaImmagine(percorso, nomeFile) 'Nella riga 1 ho impostato le costanti per l'ACTIVE DATA OBJECT 2.5 DIM FName, FType call openFSO() FName = Server.MapPath(percorso) call closeFSO() FType = LCase(right(FName, 4)) SELECT CASE FType CASE ".asf" : FType = "video/x-ms-asf" CASE ".avi" : FType = "video/avi" CASE ".doc" : FType = "application/msword" CASE ".htm", "html" : FType = "text/html" CASE ".gif" : FType = "image/gif" CASE ".jpg", "jpeg" : FType = "image/jpeg" CASE ".mp3" : FType = "audio/mpeg3" CASE ".mpg", "mpeg" : FType = "video/mpeg" CASE ".rtf" : FType = "application/rtf" CASE ".zip" : FType "application/x-zip-compressed" CASE ".wav" : FType = "audio/wav" CASE ".wmv" : FType = "video/x-ms-wmv" CASE ".xls" : FType = "application/vnd.ms-excel" 'Handle All Other Files CASE Else ContentType = "application/octet-stream" END SELECT 'VISUALIZZO L'IMMAGINE DIM objStream Set objStream = Server.CreateObject("ADODB.Stream") objStream.Type = adTypeBinary objStream.Open objStream.LoadFromFile (FName) Response.ContentType = FType 'Response.AddHeader "Content-Disposition", "attachment; filename = "& (nomeFile) Response.AddHeader "Content-Lenght", objStream.size Response.Charset = "UTF-8" 'Se non raggiunge la fine dello stream restituisce TRUE DO WHILE NOT objStream.EOS Response.BinaryWrite objStream.Read(1024) Response.Flush LOOP Response.Clear() objStream.Close Set objStream = Nothing End Sub call visualizzaImmagine("foto/immagine1.jpg", "immagine1.jpg") call visualizzaImmagine("foto/immagine2.jpg", "immagine2.jpg") %>
Qualcuno mi potrà dire di usare l'oggetto File System Object ma
siccome devo proteggere le cartelle da okki indiscreti e renderle accessibili solo tramite script, devo per forza usare questo oggetto.
Grazie.

Rispondi quotando