none
Insertar imagen en página aspx, desde una base de datos sql server

    Pregunta

  • Hola, que tal. Tengo que insertar una imagen dentro de una pagina aspx. Las imagenes estan almacenadas en una base de datos de sql server.
    Escuche hablar de que se puede obtener la imagen como un flujo de bytes y redirigir hacia una nueva pagina con el tipo de contenido imagen. Pero esto no me sirve porque tengo que mostrar la imagen dentro de un aspx que contiene otras cosas, no solo la imagen en cuestion.
    Otra opcion que se me ocurrio es cargar la imagen desde la base de datos, almacenarla en disco, y mostrarla desde allí con un control Image de asp.net. Pero la verdad quisiera evitar esta opción y adoptarla solo como ultimo recurso.
    Mi idea es cargar la imagen en memoria, y mostrarla en la pagina aspx. No tengo problamas en levantar la imagen en memoria en cualquier formato (ya sea un array de bytes, o un objeto de tipo Image, etc), pero no se como mostrar la imagen. ¿Alguien sabe como hacerlo?

    Saludos y gracias anticipadas.

    Juan
    viernes, 24 de octubre de 2008 21:29

Respuestas

  • Hola juanih,

     

    dos posibles soluciones:

     

    - mostrar la imagen en un GridView o DetailsView. Aqui describen como hacerlo:

     

    http://www.beansoftware.com/asp.net-tutorials/images-database.aspx

     

    - La segunda opción es utilizando HTTPHandlers. Te explico. Necesitas generar la imagen de forma dinamica (ya que la imagen en si no existe, esta almacenada en la base de datos). Cuando un browser requiere mostrar una imagen, hace una petición explícita al servidor por ese recurso. Esa petición la atiende IIS (no ASP.NET) el cual va a buscar al disco (físico) ese recurso. Lo que tu necesitas es que sea ASP.NET quien atienda esa petición y devuelva la imagen que tienes en la base de datos. Aqui tienes explicados los pasos a seguir (creo que se entiende bastante bien!):

     

    http://www.aspdotnetcodes.com/Insert_Images_Database.aspx

     

     

    Espero que te sirva de ayuda!

     

    si es asi, por favor, marca esta respuesta como válida ("¿Ha resultado útil este mensaje?") Wink

     

    Gracias!!!

    viernes, 24 de octubre de 2008 22:31

Todas las respuestas

  • Hola juanih,

     

    dos posibles soluciones:

     

    - mostrar la imagen en un GridView o DetailsView. Aqui describen como hacerlo:

     

    http://www.beansoftware.com/asp.net-tutorials/images-database.aspx

     

    - La segunda opción es utilizando HTTPHandlers. Te explico. Necesitas generar la imagen de forma dinamica (ya que la imagen en si no existe, esta almacenada en la base de datos). Cuando un browser requiere mostrar una imagen, hace una petición explícita al servidor por ese recurso. Esa petición la atiende IIS (no ASP.NET) el cual va a buscar al disco (físico) ese recurso. Lo que tu necesitas es que sea ASP.NET quien atienda esa petición y devuelva la imagen que tienes en la base de datos. Aqui tienes explicados los pasos a seguir (creo que se entiende bastante bien!):

     

    http://www.aspdotnetcodes.com/Insert_Images_Database.aspx

     

     

    Espero que te sirva de ayuda!

     

    si es asi, por favor, marca esta respuesta como válida ("¿Ha resultado útil este mensaje?") Wink

     

    Gracias!!!

    viernes, 24 de octubre de 2008 22:31
  • Muchas gracias Javier, lo estuve leyendo y parece ser exactamente lo que necesito. Lo voy a probar.

    Saludos

    Juan
    viernes, 24 de octubre de 2008 23:00
  • De nada!

     

    si te sirve, marca la respuesta como válida! Asi otras personas con el mismo problema podrán ver la solución de forma rápida!

     

    Gracias!!

     

    sábado, 25 de octubre de 2008 0:16