ASPcenter.net

24 febbraio 2010

Filtrare la visualizzazione di un’immagine con un file ASP

Archiviato in: Grafica e Immagini — Tag:, , , — lukeonweb @ 23:35

La visualizzazione dinamica di immagini, o la protezione delle stesse, può essere filtrata da uno script lato server implementabile in ASP.

Immaginiamo quindi di voler visualizzare delle immagini dinamicamente attraverso dei parametri di tipo querystring e di voler utilizzare un file ASP direttamente all’interno del Tag HTML per la gestione delle immagini stesse.

Avremo, ad esempio, un codice HTML del genere:

<img src="immagini.asp?img=1">

Partiamo comunque dal concetto di base, ovvero l’utilizzo di ASP come filtro per la visualizzazione di un’immagine, quindi dal codice:

<img src="immagini.asp">

senza alcun parametro.

Utilizzeremo il seguente codice nel file immagini.asp:

<%@LANGUAGE = VBScript%>
<%
    Response.ContentType = "image/GIF"
    Dim immagine
    Set immagine = Server.CreateObject("ADODB.Stream")
    immagine.Open
    immagine.Type = 1
    immagine.LoadFromFile Server.MapPath("immagine.gif")
    Response.BinaryWrite immagine.Read
    immagine.Close
    Set immagine = Nothing
    Response.End
%>

Commentiamo i passaggi che ne compongono la struttura.

Dichiaro innanzitutto il tipo di documento, assegnandogli il valore image/GIF, ovvero imposto a tutti gli effetti il file ASP come se fosse un’immagine di tipo GIF.

A questo punto apro uno stream attraverso ADO, sfruttando la classe ADODB.Stream. Apro la connessione al file, imposto la connessione in lettura (utilizzando il cursore 1), carico l’immagine, chiudo la connessione e ripulisco l’oggetto.

Non resta che terminare con forza l’esecuzione della pagina.

Torniamo alla dinamizzazione dell’applicazione. Modifichiamo il codice appena presentato e commentato aggiungendo il recupero della querystring e passando dinamicamente il nome del file all’esecuzione del caricamento dell’immagine:

<%@LANGUAGE = VBScript%>
<%
    Dim img
    img = Request.QueryString("img")
    Response.ContentType = "image/GIF"
    Dim immagine
    Set immagine = Server.CreateObject("ADODB.Stream")
    immagine.Open
    immagine.Type = 1
    immagine.LoadFromFile Server.MapPath(img & ".gif")
    Response.BinaryWrite immagine.Read
    immagine.Close
    Set immagine = Nothing
    Response.End
%>

Per maggiore chiarezza le modifiche sono state evidenziate in grassetto.

Nessun commento »

Non c'è ancora nessun commento.

RSS feed dei commenti a questo articolo. TrackBack URL

Lascia un commento

ASPcenter.net è il blog italiano su ASP, ASP.Net, VB.Net, C# e Visual Studio - Funziona con WordPress