none
Passar imagem via Handler RRS feed

  • Pergunta

  • Tenho um Handler e uma pagina que desejo exibir algumas imagens, estas ficarão em uma Grid.Fiz um código, do qual me parece estar certo, porém, de forma alguma mostra a imagem na tela.

    Não da erro, mas a imagem não aparece.

    No banco, o campo imagem teste como "image" e "varcharbinary(max)".

    Handler.ashx

            public void ProcessRequest(HttpContext context)
            {
                if (context.Request.QueryString["ImagemID"] == null) return;
                string connStr = ConfigurationManager.ConnectionStrings["imagensConnectionString"].ToString();
                string ImagemID = context.Request.QueryString["ImagemID"].ToString();
    
                using (SqlConnection conn = new SqlConnection(connStr))
                {
                    using (SqlCommand cmd = new SqlCommand("SELECT Imagem from tabImagem WHERE ImagemID = @ImagemID", conn))
                    {
                        cmd.Parameters.Add(new SqlParameter("@ImagemID", ImagemID));
                        conn.Open();
                        using (SqlDataReader reader = cmd.ExecuteReader(CommandBehavior.CloseConnection))
                        {
    
    
                            reader.Read();
                            context.Response.BinaryWrite((Byte[])reader[reader.GetOrdinal("Imagem")]);
                            context.Response.Flush();
                            reader.Close();
                        }
                        
                    }
                    
                }
    
            }

    mostrar_imagem.aspx

            private void BindFiles()
            {
                string cnString = "Data Source=localhost;Initial Catalog=imagens;Persist Security Info=True;User ID=sa;Password=1234";
                
    
                DataTable table = new DataTable();
                using (SqlConnection conn = new SqlConnection(cnString))
                {
                    string sql = "SELECT ImagemID,Imagem,Tipo,Descricao FROM tabImagem";
    
                    using (SqlCommand cmd = new SqlCommand(sql, conn))
                    {
                        using (SqlDataAdapter ad = new SqlDataAdapter(cmd))
                        {
                            ad.Fill(table);
                        }
                    }
                }
    
                GridView1.DataSource = table;
                GridView1.DataBind();
            }

    GRID

            <asp:GridView ID="GridView1" runat="server" EnableViewState="false" AutoGenerateColumns="false">
                <Columns>
                        <asp:BoundField HeaderText="ImagemID" DataField="ImagemID" />
                        <asp:BoundField HeaderText="Descricao" DataField="Descricao" />
                        <asp:TemplateField HeaderText="Conteudo">
                            <ItemTemplate>
                                    <img src="Handler.ashx?ImagemID=<%# Eval("ImagemID")%>" alt="<%# Eval("Imagem") %>" />                             
                            </ItemTemplate>
                        </asp:TemplateField>
                
               <%--         <asp:TemplateField HeaderText="Ativo">
                             <ItemTemplate>
                                    <img src="Handler.ashx?ImagemID=<%# Eval("ImagemID")%>>" alt="<%# Eval("Imagem") %>>" />                             
                            </ItemTemplate>
                        </asp:TemplateField>--%>
    
                </Columns>
                
    
            </asp:GridView>

    Por favor..ajudaaaaa..

    segunda-feira, 12 de agosto de 2013 20:00