23 messaggi dal 16 giugno 2014
Buongiorno a tutti.

Questa problematica è stata più volte affrontata, ma ho difficoltà a farla funzionare utilizzando VB.net.
Il progetto non ha la configurazione MVC, ma semplice sito web.

Ho creato il codice che estrae l'immagine da un DB access come oggetto OLE. getImageDB()

___________________________________________________
Function getImage() As FileContentResult
Dim util As New Utilita
Dim byteArray As Byte() = New Byte() {0}
' la funzione getImage() restituisce il blob dell'immagine presa dal DB
byteArray = util.getImageDB()
Return New FileContentResult(byteArray, "image/jpeg")
End Function
____________________________________________________


nella pagina ASP associata ho messo:
<img alt="" width="200" height="200" src='<% =Url.Action("getImage", "Default.aspx")%>'< />

ma in fase di compilazione mi da questo errore:

"Il riferimento a un membro non condiviso richiede un riferimento a un oggetto"

???
Grazie a chi ha la pazienza di spiegarmi.
11.886 messaggi dal 09 febbraio 2002
Contributi
Ciao Fabius, benvenuto nel forum.

fabius62 ha scritto:

Il progetto non ha la configurazione MVC, ma semplice sito web.

Ok, dunque è un sito ASP.NET WebForms. In questo caso non puoi usare Url.Action o il FileContentResult perché questi hanno un loro utilizzo solo nel contesto del framework MVC.

Per visualizzare un'immagine contenuta nel database, potresti aggiungere un HttpHandler .ashx al tuo sito e fargli scrivere il byteArray sulla Response. Ecco un esempio.
http://www.developerfusion.com/code/5223/using-ashx-files-to-retrieve-db-images/

Al momento di scrivere il byteArray, puoi anche usare questa sintassi.
ctx.Response.BinaryWrite(byteArray);


Ricordati di impostare il ContentType corretto. Nell'esempio era "image/bmp", ma nel tuo caso potrebbe essere "image/jpeg" o altro.

Infine, il tuo tag <img> punterà all'HttpHandler .ashx che hai creato.
<img alt="" width="200" height="200" src='<%= Page.ResolveUrl("~/Percorso/NomeHttpHandler.ashx?id=" + idDelRecord) %>'


Cosa fa la tua pagina esattamente? Visualizza un elenco di oggetti oppure è la scheda dettagliata di uno di essi?
Stai usando Repeater, FormView o altri controlli ASP.NET?

ciao,
Moreno

Enjoy learning and just keep making
23 messaggi dal 16 giugno 2014
Buongiorno e grazie per la risposta.

Il sito vuole semplicemente visualizzare immagini tramite una show fatta in javascript, che attualmente è statica e volevo renderla dinamica.
Non uso nessun controlla asp.net, pensavo di duplicare le righe tramite un ciclo che legge da DB.
(ora è un ciclo for, ma chiaramente utilizzerò un while)

<% For i As Integer = 0 To 5%>
<img src="Images/Prodotti/IMG_8500.JPG" alt="Borsa Mare" data-caption="cod: 8500" />

<% Next%>

onestamente ho ancora il solito dubbio se leggere effettivamente le immagini dal DB access o prendere solo il nome del file.

Forse mi sto complicando la vita, ma leggerle dal db mi stimolava di più..
;-)
3.939 messaggi dal 28 gennaio 2003
Ciao.
Ti posso rispondere perché a suo tempo ho fatto un po' di esperimenti.
Non ti conviene conservare le foto in un campo binario di database. Ti conviene invece archiviare il percorso dell'immagine.
Esempio: visualizzo delle miniature. Clicco sulla miniatura e visualizzo l'immagine ingrandita. Con un qualunque plugin di jquery, leggere le immagini da db è molto più lento che recuperarle dal disco.


Ti consiglio comunque di provare perché la propria esperienza vale più di mille consigli.

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.