> Faqs > ¿Cómo levantar una página de visualización de imágen base64, en Internet Explorer?

¿Cómo levantar una página de visualización de imágen base64, en Internet Explorer?

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.

Respuestas

Realmente no sé si tu pregunta tiene que ver realmente con ASP. Porque una imagen en base64 se muestra simplemente con un HTML sencillo. Como este:

<img src="data:image/png;base64, iDOAbSWWC---RESTO DE LA CODIGICACIÓN BASE64--==" alt="mi imagen en base64" />

Es decir, si tienes el string guardado en tu base de datos, sería simplemente colocarlo como atributo src de la etiqueta <img>.

Borja
314 6 25 17