my.ASPItalia.com
ASP.NET
|
HTML5
|
LINQ e Entity Framework
|
Silverlight
|
Windows Phone
|
.NET Framework
|
Windows 8
|
Libro WP7
|
Libro HTML5
|
Corso HTML5
Iscriviti
Login
Newsletter
Home
Articoli
Script
Notizie
FORUM
Blogs
Media
Tutorials
Corsi
Libri
Eventi
Tags
Tutti i forum
Ricerca
FAQ
Fai una domanda
Handler per caricare immagini da DB
in
.NET Framework
>
ASP.NET 2.0
Ultimo messaggio
mbizzaro
il 19 settembre 2007 alle 09:45
319 messaggi
dal 05 agosto 2005
Ciao Ragazzi,
Sto cercando di creare un Handler per caricare delle immagini caricate in un DB MSSQL2005 e posizionarle in una colonna di un Gridview.
Seguendo il protocollo, ho aggiunto un gridview al mio web form, ho configurato l'sqldatasource esclusa la colonna contenente le immagini (imgData).
Ho aggiunto alla soluzione un Handler:
-----------------------------------------------------------------------------
<%@ WebHandler Language="VB" Class="Handler" %>
Imports System
Imports System.IO
Imports System.Web
Imports System.Configuration
Imports System.Data
Imports System.Data.SqlClient
Public Class ImageTool
Implements IHttpHandler
Public Sub ProcessRequest(ByVal context As HttpContext) Implements System.Web.IHttpHandler.ProcessRequest
Dim myConnection As New SqlConnection(ConfigurationManager.ConnectionStrings("rachel").ConnectionString)
myConnection.Open()
Dim sql As String = "Select imgData from ImagePreview where imgId=@imgId"
Dim cmd As SqlCommand = New SqlCommand(sql, myConnection)
cmd.Parameters.Add("@ImgId", SqlDbType.Int).Value = context.Request.QueryString("ID")
cmd.Prepare()
Dim dr As SqlDataReader = cmd.ExecuteReader()
dr.Read()
context.Response.ContentType = dr("ImgType").ToString()
context.Response.BinaryWrite(CType(dr("ImgData"), Byte()))
End Sub
Public ReadOnly Property IsReusable() As Boolean Implements System.Web.IHttpHandler.IsReusable
Get
End Get
End Property
End Class
-----------------------------------------------------------------------------
A questo punto, ho aggiunto al gridview un Templatefield:
-----------------------------------------------------------------------------
<asp:TemplateField HeaderText="imgData" SortExpression="imgData">
<ItemTemplate>
<asp:Image ID="test" ImageUrl='<%# "~/handler.ashx?ID=" & Eval("imgID") %>' runat="server"/>
</ItemTemplate>
</asp:TemplateField>
-----------------------------------------------------------------------------
Durante il rendering della pagina, vedo che viene richiamato l'Handeler e gli vengono passati i relativi imgID, ma la mia colonna non visualizza le immagini relative. Mi appare solo la classica crocetta rossa.
Dove sbaglio? Devo registrare l'Handeler nel web.config? Se si, come?
Grazie
Marco
Rispondi
Quoting
mbizzaro
il 19 settembre 2007 alle 16:45
319 messaggi
dal 05 agosto 2005
Non ditemi che nessuno ha mai adoperato un Handler prima.
Nessuna idea?
Rispondi
Quoting
amelix
il 19 settembre 2007 alle 17:28
141 messaggi
dal 21 febbraio 2002
www.melisweb.eu
Che HTML ti da in uscita?
]aMelix[
-------------------------------
http://www.melisweb.eu/
http://www.puntodidomanda.com/
http://www.andiamo.it/
http://www.my-hotel.it/
http://www.cucinamore.com/
-------------------------------
MSN: amelix@msn.com
Rispondi
Quoting
mbizzaro
il 20 settembre 2007 alle 11:18
319 messaggi
dal 05 agosto 2005
Scusa Amelix, ma che cosa intendi per HTML in uscita?
Grazie
Marco
Rispondi
Quoting
amelix
il 20 settembre 2007 alle 13:03
141 messaggi
dal 21 febbraio 2002
www.melisweb.eu
L'output che risulta dalla pagina aspx
Non vorrei fosse solo un problema di percorsi.
La pagina è visibile da internet?
Se si, a che indirizzo?
]aMelix[
-------------------------------
http://www.melisweb.eu/
http://www.puntodidomanda.com/
http://www.andiamo.it/
http://www.my-hotel.it/
http://www.cucinamore.com/
-------------------------------
MSN: amelix@msn.com
Rispondi
Quoting
mbizzaro
il 21 settembre 2007 alle 11:58
319 messaggi
dal 05 agosto 2005
Ho finalmente risolto.
Ho modificato l'Handler in questo modo:
<%@ WebHandler Language="VB" Class="ImageFetch" %>
Imports System.Web
Imports System.Data.SqlClient
Imports System.Data
'The idea behind this is to simply fetch the image out of the database and stream it down the network.
Public Class ImageFetch : Implements IHttpHandler
Const BUFFERSIZE As Integer = 1024
Public ReadOnly Property IsReusable() As Boolean Implements IHttpHandler.IsReusable
Get
Return True
End Get
End Property
Public Sub ProcessRequest(ByVal context As HttpContext) Implements IHttpHandler.ProcessRequest
Dim response As Web.HttpResponse = context.Response
Dim request As Web.HttpRequest = context.Request
response.ContentType = "image/jpeg"
response.Cache.SetCacheability(HttpCacheability.Public)
response.BufferOutput = False
writeSingleImage(CInt(request.QueryString("ImageID")), CInt(request.QueryString("Size")), response.OutputStream)
response.End()
End Sub
Public Sub writeSingleImage(ByVal ImageID As Integer, ByVal size As Integer, ByVal output As IO.Stream)
'todo fix the following line of code
Dim cxnstr As String = ConfigurationManager.ConnectionStrings("your connection string").ConnectionString
Dim connection As New SqlConnection(cxnstr)
Dim query As String
query = "select imgData from imagePreview where imgid=@item_id"
Dim command As New SqlCommand(query, connection)
Dim param0 As New Data.SqlClient.SqlParameter("@item_id", Data.SqlDbType.Int)
param0.Value = ImageID
command.Parameters.Add(param0)
connection.Open()
Dim d As Byte() = CType(command.ExecuteScalar(), Byte())
output.Write(d, 0, d.Length)
connection.Close()
End Sub
End Class
e l'ho richiamato in questo modo:
<asp:Image ID="ImageButton1" ImageUrl='<%# "imagefetch.ashx?size=1&imageid=" & Cstr(Eval("imgId")) %>' runat ="server" Height="100px" BorderColor="Black" BorderStyle="Solid" BorderWidth="1px"/>
Grazie ancora Amelix
Marco
Rispondi
Quoting
Salto rapido
Ultimi messaggi
Tutti i forum
Ricerca
Utenti online
ASP.NET
ASP.NET 2.0
ASP.NET 3.5
ASP.NET 4.0
.NET Framework
Silverlight
Windows Phone
Windows Presentation Foundation e WinForms
Windows Communication e Workflow
ASP - avanzato
ASP - base
SQL Server e MySQL
E-commerce
Hosting
Altri linguaggi e tecnologie
Windows Server, IIS & Security
Libri
OT
Commenti: blogs e notizie
Eventi
Torna al forum
| Feed
RSS
ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.
Community
Effettua il login!
Hai dimenticato la password?
Ultimi messaggi
da php a classic asp
(2)
Problema con script #401 per il ridimensioanmento di immagini
(4)
sessioni asp.net 2.0
(7)
Come intercettare errori dal server e mostrarli in una pagina personalizzata?
(3)
sharepoint
Problema visualizzazione pagine
(1)
twain image scanner in sito web
(11)
UTENTI ONLINE
In primo piano
Annunciate le versioni ufficiali di Visual Studio 11
Rilasciato Visual Studio 11 Beta: scopri tutte le novità!
Windows 8 Consumer Preview: segui con noi la diretta
I più letti di oggi
Metro Style App per Windows 8 con HTML e Javascript
Applicazioni Metro con XAML: cosa cambia per lo sviluppatore .NET con Windows 8
Tutorial LINQ to SQL
Tutorial Windows Phone 7.1
Salvare e leggere rapidamente le impostazioni di un'applicazione Windows Phone
La nostra prova su strada di Windows Phone 7
Tutorial ASP.NET 3.5
Media
Metro Style App per Windows 8 con HTML e Javascript
Applicazioni Metro con XAML: cosa cambia per lo sviluppatore .NET con Windows 8
Tutti i media
In evidenza
Dal 29 febbraio arriva WinRTItalia.com: tutto sullo sviluppo per Windows 8 e Metro
Disegnare un'applicazione a servizi con Entity Framework e WCF
Il nuovo tag time in HTML5
Salvare e leggere rapidamente le impostazioni di un'applicazione Windows Phone
Metro Style App per Windows 8 con HTML e Javascript
Aggiungere un handler globale per le chiamate AJAX di ASP.NET MVC
Annunciate le versioni ufficiali di Visual Studio 11
Applicazioni Metro con XAML: cosa cambia per lo sviluppatore .NET con Windows 8
MISC
I nostri autori
Collabora con noi!
Media Kit - Pubblicità sul nostro network