Torna al Thread

<%@ WebHandler Language="VB" Class="Handler" %> Public Class Handler Implements IHttpHandler ReadOnly Property IsReusable() As Boolean Implements IHttpHandler.IsReusable Get Return True End Get End Property Sub ProcessRequest(ByVal context As HttpContext) Implements IHttpHandler.ProcessRequest ' Impostare le opzioni di risposta context.Response.ContentType = "image/jpeg" context.Response.Cache.SetCacheability(HttpCacheability.Public) context.Response.BufferOutput = False ' Impostare il parametro Size Dim size As PhotoSize = PhotoSize.Original Select Case context.Request.QueryString("Size") Case "S" size = PhotoSize.Small Case "M" size = PhotoSize.Medium Case "L" size = PhotoSize.Large Case Else size = PhotoSize.Original End Select ' Impostare il parametro PhotoID Dim id As Int32 = 1 Dim stream As IO.Stream = Nothing If ((Not (context.Request.QueryString("PhotoID")) Is Nothing) _ AndAlso (context.Request.QueryString("PhotoID") <> "")) Then id = [Convert].ToInt32(context.Request.QueryString("PhotoID")) stream = PhotoManager.GetPhoto(id, size) Else id = [Convert].ToInt32(context.Request.QueryString("AlbumID")) stream = PhotoManager.GetFirstPhoto(id, size) End If ' Recuperare la foto dal database. Se non viene restituito alcun elemento, recuperare la foto predefinita "segnaposto" If (stream Is Nothing) Then stream = PhotoManager.GetPhoto(size) End If ' Scrivere il flusso immagini nel flusso di risposta Dim buffersize As Integer = (1024 * 16) Dim buffer() As Byte = New Byte((buffersize) - 1) {} Dim count As Integer = stream.Read(buffer, 0, buffersize) Do While (count > 0) context.Response.OutputStream.Write(buffer, 0, count) count = stream.Read(buffer, 0, buffersize) Loop End Sub End Class
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5