18 messaggi dal 25 settembre 2003
Salve a tutti!
Ho un problema...ora vi spiego:
Non devo far altro che visualizzare in una WebForm un immagine.
L'imagine è salvata in una tabella Sql Server come IMAGE.
Recupero l'image nel seguente modo:

.....
byte[] dati = new byte[0];
object myObj;
if (reader.Read())
{
myObj = reader["context"];
dati = (byte[])myObj;
}
.....
E fino a qui, tutto ok.
A questo punto, come faccio a far visualizzare l'immagine in un WebControls?

Vi ringrazio per la disponibilità

Riko
35 messaggi dal 04 gennaio 2008
E se salvassi l'immagine in una cartella temporanea e poi assegnassi l'src di una img con javascript assegnando il path dell'immagine appena salvata?
dai un occhiata quà:

http://www.asp.net/learn/data-access/tutorial-55-vb.aspx

ciao marco

Chi parla senza modestia troverà difficile rendere buone le proprie parole.
Confucio

http://nostromo.spaces.live.com/default.aspx
3.165 messaggi dal 06 settembre 2002
Contributi | Blog
Ciao,

per queste cose un bell'httphandler è ciò che ci vuole. fai puntre l'immagine ad un url del tipo image.ashx?parametri

poi ti costruisci un httphandler che rispopnde a quell'url e li tramite response.output restituisci il tuo array di byte.

HTH
.

Nothing can be born from hartred

Stefano (SM15455) Mostarda
http://blogs.aspitalia.com/SM15455
Rome Italy
18 messaggi dal 25 settembre 2003
Si, è un'idea!
Però credevo che esistesse qualche oggetto tipo "PictureBox" (windows application) che fa tutto lui....senza fare tutti sti giri.

Comunque si, alla fine se non trovo alternativa, faccio come mi hai detto tu.

Ti ringrazio
Riccardo

Riko
35 messaggi dal 04 gennaio 2008
..ammetto che la mia pensata era un po' più macchinosa...
492 messaggi dal 08 gennaio 2007
Ciao, ti consiglio di utilizzare un HttpHandler e invocarlo con una querystring, ovvero tramite qualche sistema che deciderai tu stabilisci la chiave per recuperare l'immagine da db, poi in fase di rendering utilizzi l'id per completare l'url da passare all' handler circa così:
string url_da_passare=String.Format("tuohandler.axd?id={0}",var_ID_recuperata_precedentemente);
TuoImageControl.ImageUrl=url_da_passare;


L'handler:
public class tuohandler:IHttpHandler{
public void ProcessRequest(HttpContext ctx){
int id=-1;
bool result=Int32.TryParse(ctx.Request.QueryString["id"], out id);
if(!result)
ctx.Response.End();
string connessione="........";
string command="select ...................... where IDfoto=@id";
byte[] img=null;
SqlConnection conn=new SqlConnection(connessione);
using(conn){
SqlCommand cmd=new SqlCommand(command,conn);
cmd.Parameters.AddWithValue("@id",id);
conn.Open();
img=(byte[])cmd.ExecuteScalar();
conn.Close();
}
if(img!=null){
 ctx.Response.ContentType="image/jpeg";// ad esempio
 ctx.Response.BinaryWrite(img);
}
}
}
public bool IsReusable{
get{return true;}
}
}
18 messaggi dal 25 settembre 2003
Al momento io visualizzo l'imagine tramite
Response.ContentType = ".....";
Response.BinaryWrite(dati);

Quindi fondamentalmente i metodi per visualizzare ste benedette immagini sono due:
1) Recuperando l'image da DB e poi scaricarla in locale e quindi recuperare l'url da passare all <img>
2) Utilizzare
Response.ContentType = "image/gif";
Response.BinaryWrite(dati);
come faccio già

Vi chiedo:
qual'è il metodo più pulito?

Riko

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.