Buenas, necesito una mano para entender qué es lo que estoy haciendo mal en ésto. Tengo una imagen en base64 en una base de datos, la recupero y está asignada a un String. Lo que debo hacer con ella es abrir una página aspx(que ya lo tengo hecho con un scriptManager, y le paso por parámetro la imagen, así como también la recibo en la página) pero a la hora de visualizar la imagen estoy fallando en algo. Paso a mostrar lo que ya intenté:
'intento 1: código en aspx:
<asp:Literal ID=Literal1 runat=server></asp:Literal>
código en aspx.vb:
Dim ruta_archivo As String = Request.QueryString("ruta_archivo")
Me.Literal1.Text = "<img src=" & ruta_archivo & " />"
- el problema aquí es que me trae la imagen como si estuviera rota
'intento2: código en aspx.vb:
Dim ruta_archivo As String = Request.QueryString("ruta_archivo")
Response.Clear()
Response.ContentType = "aplication/image"
Response.AddHeader("Content-Disposition", "inline;filename=foto.jpg")
'en la siguiente línea me aparece un error "el código de usuario no controló HttpException"
Response.TransmitFile(ruta_archivo)
Response.End()
'intento 3: código en aspx.vb:
Dim Base_Imagen64Web As String = Request.QueryString("ruta_archivo")
Dim Base_imagen As String = Base_Imagen64Web.Replace("data:image/jpeg;base64,", "")
'En la siguiente línea me sale "Longitud no válida para una matriz de caracteres Base-64."
Dim BTWEB As Byte() = Convert.FromBase64String(Base_imagen)
Dim SW As New IO.StreamWriter("foto.jpg")
SW.BaseStream.Write(BTWEB, 0, BTWEB.Length)
SW.Close()
'ahora hago uso de intento 1
Dim ruta_archivo As String = "foto.jpg"
Me.Literal1.Text = "<img src=" & ruta_archivo & " />"
Vale aclarar que estoy trabajando con visual2008 e internet explorer.
Bueno, espero puedan darme una mano porque ya no se me ocurre cómo seguir.
Como escribí antes el base64 llega bien, el problema está en la visualización.
Desde ya muchas gracias.