none
Obtener imagen local, si no se obtiene de base de datos RRS feed

  • Pregunta

  • En un lisview, asp.net tengo un campo para recibir una imagen resultante de la consulta al servidor

    para visualizar la imagen del servidor la he puesto así:

    <asp:Image ID="Image1" runat="server" CssClass="avatar" Height="40px" width="40px"

    ImageUrl='<%# string.Format("~/ShowImage.ashx?id={0}",Eval("OPER1"))%>' Style=";" />

    el archivo ShowImage.ashx devuelve el valor de la imagen obtenida del server sobre el parametro enviado:

    public void ProcessRequest(HttpContext context)
        {
           Int32 empno;
           if (context.Request.QueryString["id"] != "0")
           {
               empno = Convert.ToInt32(context.Request.QueryString["id"]);
               context.Response.ContentType = "image/jpeg";
               Stream strm = ShowEmpImage(empno);
               byte[] buffer = new byte[4096];
               int byteSeq = strm.Read(buffer, 0, 4096);
    
               while (byteSeq > 0)
               {
                   context.Response.OutputStream.Write(buffer, 0, byteSeq);
                   byteSeq = strm.Read(buffer, 0, 4096);
               }
    
           }
           else
           {
               // Asignar una imagen .PNG localizada en carpeta Img de la aplicación
           }
        }

    mi duda esta en el (ELSE) ya que necesito colocar en la imagen local que tengo en carpeta para que no aparezca el cuadro de vacío

    sino que aparezca la imagen.

    Agradezco la ayuda.

    martes, 24 de noviembre de 2015 16:09

Todas las respuestas

  • hola

    >>mi duda esta en el (ELSE) ya que necesito colocar en la imagen local que tengo en carpeta para que no aparezca el cuadro de vacío

    con local te refieres a la pc del usuario ? si es asi olvidate porque eso no se puede

    deberias poner la imagen por defecto en el servidor y usar

    else { context.Response.ContentType = "image/jpeg";

    context.Response.BinaryWrite(File.ReadAllByte(context.Server.MapPath("Imagenes/NoDisponible.jpg")));        

    context.Response.End(); }

    como veras envias una imagen por defecto pero tiene que estar en el servidor si es que no se tiene una

    [ASP.NET] GridView – Edición Empleados

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    martes, 24 de noviembre de 2015 16:54
  • Ok gracias, 

    me marca un error en ReadAllByte se debe agregar alguna libreria? por que no me da la opción en caso de ser una palabra reserada y si es una variable como se declara stream??

    jueves, 26 de noviembre de 2015 23:02