Discussion:
Problemas con Imagenes
(demasiado antiguo para responder)
Javier Torres
2006-11-08 15:45:01 UTC
Permalink
Hola amigos..
estoy trabajando con un sistema(Asp Net 2005 C#) que debe guardar unas
imagenes, subo perfectamente las imagenes y las guardo en un tabla de sql, el
campo es de tipo image, hasta ahi no hay problema, el problema esta al
recuperar la imagen de la BD, en el servidor no tengo problemas la imagen la
recupero exitosamente, pero en el cliente no puedo mostrar la imagen, solo se
ve un espacio en blanco... desde el cliente subo la imagen al server
sinproblema....
Alguien podria explicarme que pasa????

saludos y suerte
Matias Iacono
2006-11-08 17:32:01 UTC
Permalink
Como muestras la imagen?

Generalmente se usa una segunda pagina que sirve para recuperar la imagen,
modificar el encabezado de la pagina y transmitir todo el resultado binario
al cliente.

De esta forma, la pagina se "transforma" en una imagen.

Si es este el modelo, podrias colocar algo de tu codigo? Puede que algo este
fallando.

Saludos.
--
Microsoft MVP
Orador Regional INETA
Post by Javier Torres
Hola amigos..
estoy trabajando con un sistema(Asp Net 2005 C#) que debe guardar unas
imagenes, subo perfectamente las imagenes y las guardo en un tabla de sql, el
campo es de tipo image, hasta ahi no hay problema, el problema esta al
recuperar la imagen de la BD, en el servidor no tengo problemas la imagen la
recupero exitosamente, pero en el cliente no puedo mostrar la imagen, solo se
ve un espacio en blanco... desde el cliente subo la imagen al server
sinproblema....
Alguien podria explicarme que pasa????
saludos y suerte
Javier Torres
2006-11-08 18:36:02 UTC
Permalink
Ok..
va la parte de codigo.
la variable de session Session["imgCroquis"] trae ya el arreglo de bytes
cargados en una pagina principal.....
la carga de la imagen la hago en otra pagina de la siguiente forma...
private void CargaCroquis()
{
MemoryStream stream = new MemoryStream();
byte[] imgVarCroquis = (byte[])Session["imgCroquis"];
stream.Write(imgVarCroquis, 0, imgVarCroquis.Length);
if (imgVarCroquis.Length > 0)
{
imgCroquis.Visible = true;
Bitmap varBitMap = new Bitmap(stream);
Graphics varGraf = Graphics.FromImage(varBitMap);

string strNomArch = @"d:\croquis\" +
Session["DepSub"].ToString() + "Croq" + imgVarCroquis.Length + ".jpeg";

if (File.Exists(strNomArch))
File.Delete(strNomArch);
varBitMap.Save(strNomArch,
System.Drawing.Imaging.ImageFormat.Jpeg);

imgCroquis.ImageUrl = strNomArch;
lblErrorFoto.Text = imgCroquis.ImageUrl;
}
else
Session["imgCroquis"]= null;
}
Espero este entendible el codigo..
saludos y suerte
Post by Matias Iacono
Como muestras la imagen?
Generalmente se usa una segunda pagina que sirve para recuperar la imagen,
modificar el encabezado de la pagina y transmitir todo el resultado binario
al cliente.
De esta forma, la pagina se "transforma" en una imagen.
Si es este el modelo, podrias colocar algo de tu codigo? Puede que algo este
fallando.
Saludos.
--
Microsoft MVP
Orador Regional INETA
Post by Javier Torres
Hola amigos..
estoy trabajando con un sistema(Asp Net 2005 C#) que debe guardar unas
imagenes, subo perfectamente las imagenes y las guardo en un tabla de sql, el
campo es de tipo image, hasta ahi no hay problema, el problema esta al
recuperar la imagen de la BD, en el servidor no tengo problemas la imagen la
recupero exitosamente, pero en el cliente no puedo mostrar la imagen, solo se
ve un espacio en blanco... desde el cliente subo la imagen al server
sinproblema....
Alguien podria explicarme que pasa????
saludos y suerte
CCALLOQUISPE PALOMINO
2006-11-10 00:11:01 UTC
Permalink
Imports System.Data.SqlClient
Imports System.Data.SqlTypes
Imports System.Data


Partial Class webimagen
Inherits System.Web.UI.Page


Protected Sub Page_Load _
(ByVal sender As Object _
, ByVal e As System.EventArgs) Handles Me.Load


Dim in_id_imagenpublicacion As Integer = 0
Dim st_foto As String = ""


If _
CType(Request.QueryString("ID_ImagenPublicacion"), String) = "" Then

Exit Sub

End If

'RECUPERANDO LA IDENTIFICACION

in_id_imagenpublicacion = _
CType(Request.QueryString _
("ID_ImagenPublicacion"), Integer)
' in_id_imagenpublicacion = 9


Using sql_conexionimagen As New SqlConnection

sql_conexionimagen.ConnectionString = _
ConfigurationManager.ConnectionStrings _
("BDWEB").ConnectionString

sql_conexionimagen.Open()

Using cmd_imagen As New SqlCommand

cmd_imagen.Connection = sql_conexionimagen

cmd_imagen.CommandType = Data.CommandType.Text

cmd_imagen.CommandText = _
" SELECT " + _
" ID_ImagenPublicacion, " + _
" T_Archivo, " + _
" T_Extension, " + _
" B_Imagen " + _
" FROM " + _
" WEB_TST_IMAGENPUBLICACION " + _
" WHERE " + _
" ID_ImagenPublicacion=" + in_id_imagenpublicacion.ToString

'Response.Write(cmd_imagen.CommandText)

'Exit Sub

Using dtr_imagen As SqlDataReader = _
cmd_imagen.ExecuteReader _
( _
CommandBehavior.SequentialAccess _
Or _
CommandBehavior.CloseConnection)

If _
dtr_imagen IsNot Nothing _
AndAlso _
dtr_imagen.HasRows = True Then

dtr_imagen.Read()

st_foto = _
CType(dtr_imagen.GetValue(1), String) + _
"." + _
CType(dtr_imagen.GetValue(2), String)

If dtr_imagen.IsDBNull(3) = False Then

Dim arreglo_bytes As SqlBytes = _
dtr_imagen.GetSqlBytes(3)

Response.Buffer = True

Response.ContentType = "Image/JPEG"

Response.BinaryWrite(arreglo_bytes.Buffer)


End If

End If


End Using

End Using

End Using


End Sub

End Class
--
CCALLOQUISPE
Post by Javier Torres
Hola amigos..
estoy trabajando con un sistema(Asp Net 2005 C#) que debe guardar unas
imagenes, subo perfectamente las imagenes y las guardo en un tabla de sql, el
campo es de tipo image, hasta ahi no hay problema, el problema esta al
recuperar la imagen de la BD, en el servidor no tengo problemas la imagen la
recupero exitosamente, pero en el cliente no puedo mostrar la imagen, solo se
ve un espacio en blanco... desde el cliente subo la imagen al server
sinproblema....
Alguien podria explicarme que pasa????
saludos y suerte
Javier Torres
2006-11-10 14:26:02 UTC
Permalink
Gracias por sus comentarios......

Lo solucione de la sig. manera....
*********************
private void CargaCroquis()
{
MemoryStream stream = new MemoryStream();
byte[] imgVarCroquis = (byte[])Session["imgCroquis"];
string sSavePath = "Imagenes/Croquis/";
string strRuta;
stream.Write(imgVarCroquis, 0, imgVarCroquis.Length);
if (imgVarCroquis.Length > 0)
{
imgCroquis.Visible = true;
Bitmap varBitMap = new Bitmap(stream);
Graphics varGraf = Graphics.FromImage(varBitMap);

string strNomArch = @"" + Session["DepSub"].ToString() + "Croq"
+ imgVarCroquis.Length + ".jpeg";
string x = Request.PhysicalApplicationPath;
strRuta =Server.MapPath(sSavePath + strNomArch);
if (File.Exists(strRuta))
File.Delete(strRuta);
System.Drawing.Imaging.ImageFormat.Jpeg);
varBitMap.Save(Server.MapPath(sSavePath + strNomArch),
System.Drawing.Imaging.ImageFormat.Jpeg);
strRuta = "~/" +
strRuta.Substring(Server.MapPath(HttpContext.Current.Request.ApplicationPath).Length + 1);
imgCroquis.ImageUrl = "~/" + ResolveClientUrl(strRuta);
}
else
Session["imgCroquis"]= null;
}
****************************
Session["imgCroquis"] contiene el arreglo de bytes cargados en otra pagina
....


espero les sirva de algo...

saludos y suerte

Loading...