none
Como crear una manejador de imagenes que las consulte en base de datos y las retorne con MVC 4 RRS feed

  • Pregunta

  • Hola...
    En internet encontre una forma de renderizar las imagenes con MVC 4 mediante un controlador...

    public class ImageController : Controller
        {
            #region Actions
            public ActionResult Img(long id)
            {
                return new ImageResult(id);
            }
    }
    public class ImageResult : ViewResult
        {
            #region Constructor
            public ImageResult(long id)
            {
                Id = id;
            }
            #endregion

            public long Id { get; set; }

            public override void ExecuteResult(ControllerContext context)
            {
                Image img = null;
                string imageName = "";
                string imageType = "";
                string url = "";

               GetImage(context, ETC.BL.Common.FileType.AVATAR, ref img, ref imageName, ref imageType, ref url);

                context.HttpContext.Response.Clear();
                context.HttpContext.Response.AddHeader("content-disposition", string.Format("attachment;filename={0}", "Name"));

                if (img != null)
                {
    context.HttpContext.Response.BinaryWrite(img);
                
                context.HttpContext.Response.ContentType = FileHandler.GetMimeType(img);
            }

    Esto funciona bien pero lo que me causa inquietud con este caso es que si yo coloco la ruta en el navegador "/Image/Img/<id>"... La imagen en lugar de mostrarse en el navegador, me da la opción de descargarla...
    Ahora publique en IIS el sitio web y solo para internet explorer con imagenes tipo PNG no se renderizan... Si en firefox y en chrome pero no en IE 10 ni IE 11 y solo con las imagenes PNG...

    Entonces estoy pensando si es que la forma que estoy usando no es correcta...

    Sera que me ayudan?
    viernes, 7 de noviembre de 2014 20:11

Todas las respuestas

  • hola

    >>Si en firefox y en chrome pero no en IE 10 ni IE 11 y solo con las imagenes PNG...

    pero otra extension si la muestra, por ejemplo si envias un jpg

    porque puede ser que la codificacion que usas en el png no sea soportada por el IE

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    viernes, 7 de noviembre de 2014 20:25
  • hola

    >>Si en firefox y en chrome pero no en IE 10 ni IE 11 y solo con las imagenes PNG...

    pero otra extension si la muestra, por ejemplo si envias un jpg

    porque puede ser que la codificacion que usas en el png no sea soportada por el IE

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    No entiendo lo de la codificación... Es cualquier imagen .png!!! No creo que esto sea de configuración ya que son imagenes normalitas!!!

    Otro caso raro es que desde visual studio si las muestra pero no cuando las monto en IIS... Muestra abosulamente todas menos esas imagenes...

    viernes, 7 de noviembre de 2014 21:29
  • >>No creo que esto sea de configuración ya que son imagenes normalitas

    si todo lo normal que quieras pero los formatos de imagenes tiene codificacioens diferentes que hacen variar la calidad y se que el IE no los soporta a todos

    si te funciona con otro formato de imagen cambialo, convierte los png a jpg

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    viernes, 7 de noviembre de 2014 21:31