2014-01-20 5 views
1

나는이데이터베이스에서 특정 이미지를 가져 오는 방법은 무엇입니까?

<asp:Image ID="Image1" runat="server" Height="64px" Width="64px" 
    ImageUrl='<%# "SideImageHandler.ashx?ID=" + Eval("ID")%>'/> 

같은 aspx 페이지에 이미지 컨트롤을 그리고 내 imagehandler 코드는이

public void ProcessRequest(HttpContext context) 
    { 
     SqlConnection con = new SqlConnection(); 
     con.ConnectionString = System.Configuration.ConfigurationManager.ConnectionStrings["GalleryConnectionString"].ConnectionString; 

     // Create SQL Command 
     Utility.ImageID = 2; 
     SqlCommand cmd = new SqlCommand(); 
     cmd.CommandText = "SELECT IMAGE FROM Icon WHERE (ID ="+ Utility.ImageID+")"; 
     cmd.CommandType = System.Data.CommandType.Text; 
     cmd.Connection = con; 

     SqlParameter ImageID = new SqlParameter("@ID", System.Data.SqlDbType.Int); 
     ImageID.Value = context.Request.QueryString["ID"]; 
     cmd.Parameters.Add(ImageID); 
     con.Open(); 
     SqlDataReader dReader = cmd.ExecuteReader(); 
     dReader.Read(); 
     context.Response.BinaryWrite((byte[])dReader["IMAGE"]); 
     dReader.Close(); 
     con.Close(); 
    } 

처럼 보인다 그러나 그것은 나에게 이미지를 표시하지 않습니다. 뭐가 잘못 됐어?

또한 사용자가 이미지를 다운로드 할 때 다운로드 버튼이 있습니다. 최신 정보입니다. 코드를 다운로드 버튼 클릭 이벤트에 넣었는지 모르십니까? 친절하게 안내해 주셔서 감사합니다.

답변

3

이것은 단지 샘플입니다.Use :

<asp:image id="Image1" imageUrl="SideImageHandler.ashx?ID=<someId>"/> 

는 설정이 추가 :

<httpHandlers> 
    <add verb="*" path="img/*" type="SideImageHandler"/> 
</httpHandlers> 

및 핸들러를 :

public void ProcessRequest (HttpContext context) 
    { 
      int ID; 
      if (context.Request.QueryString["ID"] != null) 
       ID= Convert.ToInt32(context.Request.QueryString["ID"]); 
      else 
      throw new ArgumentException("No parameter specified"); 

     byte[] imageData= ;//get the image data from the database using the employeeId Querystring 
     Response.ContentType = "image/jpeg"; 
     Response.BinaryWrite(imageData); 

    } 
+0

@shahroz 내가 someId 대신 utility.ImageID 배치해야합니까? – buddy

+0

@shahroz 해당 컴파일 오류가 표시됩니다. – buddy

+0

@shahroz a begin32 – buddy

관련 문제