2009-11-10 2 views
0

SQL 데이터베이스에서 이미지를 검색하는 중 여전히 문제가 있습니다. 이것은 데이터베이스에서 이미지를 삽입하고 검색하는 최종 솔루션입니다. 여기에 내 모든 코드는 다음과 같습니다
GUI 부분 :sqldatabase에서 이미지를 검색하기 위해이 코드를 수정하십시오.

protected void BtnSave_Click(object sender, EventArgs e) 
{ 
    string uploadFileName = string.Empty; 
    byte[] imageBytes = null; 
    if (imageUpload != null && imageUpload.HasFile) 
    { 
     uploadFileName = imageUpload.FileName; 
     imageBytes = imageUpload.FileBytes; 
    } 
    string str = ConfigurationManager.ConnectionStrings["ImageConnectionString"].ConnectionString; 
    SqlConnection con = new SqlConnection(str); 
    SqlCommand com = new SqlCommand("INSERT INTO REPORT_TABLE (IMAGEFIELD,IMAGENAME) VALUES (@image,@filename)", con); 
    com.Parameters.Add("@image", SqlDbType.Image, imageBytes.Length).Value = imageBytes; 
    com.Parameters.Add("@filename", SqlDbType.VarChar, 50).Value = uploadFileName; 
    con.Open(); 
    com.ExecuteNonQuery(); 
    con.Close(); 

    SqlConnection conn = new SqlConnection(str); 
    string sql = "SELECT * FROM [REPORT_TABLE]";  
    SqlDataAdapter da = new SqlDataAdapter(sql, conn); 
    DataSet ds = new DataSet(); 
    da.Fill(ds); 
    DataRow dr = ds.Tables[0].Rows[0]; 
    Byte[] b = (Byte[])dr["IMAGEFIELD"]; 
    MemoryStream ms = new MemoryStream(b);  

**this.pictureBox1.Image = Image.FromStream(ms)**; //(This code is for a Windows application but I want to retrieve an image from a web application) so what should be written instead of the highlighted code? In imagecontrol, image id is Image1. 
} 
+0

을 어쨌든 내가 질문을 업데이트가 다음과 같이

protected void Page_Load(object sender, EventArgs e) { if(Request.QueryString.HasValues()) { var id=Request.QueryString["id"]; if(!string.IsEmptyOrNull(id)) { SqlConnection conn = new SqlConnection(str); //CHANGE SELECT TO GET ONLY IMAGE WITH PASSED ID string sql = "SELECT * FROM [REPORT_TABLE]"; SqlDataAdapter da = new SqlDataAdapter(sql, conn); DataSet ds = new DataSet(); da.Fill(ds); DataRow dr = ds.Tables[0].Rows[0]; Byte[] b = (Byte[])dr["IMAGEFIELD"]; MemoryStream ms = new MemoryStream(b); Response.Clear(); Response.ContentType = "image/jpeg"; var img=system.Drawing.Image.FromStream(ms); img.Save((Response.OutputStream, ImageFormat.Jpeg); Response.Flush(); return; } //HERE YOU MAY RETURN DEFAULT OR ERROR IMAGE } } 

지금 업로드 페이지에서 당신 버튼 클릭을 변경 :) :) –

답변

0

할 수 있습니다 같은 서버 이미지 :

..... 
    Image img= Image.FromStream(ms); 
    Response.Clear(); 
    Response.ContentType = "image/jpeg"; 
    img.Save(Response.OutputStream, ImageFormat.Jpeg); 
} 
<div> 
    <asp:Label ID="lblImage" runat="server" Text="Image"></asp:Label> 
    &nbsp;&nbsp;&nbsp;&nbsp; 
    <asp:FileUpload ID="imageUpload" runat="server" /> 
    <br /> 
    <asp:Label ID="lblFilename" runat="server" Text="Filename"></asp:Label> 
    <asp:TextBox ID="txtFilename" runat="server"></asp:TextBox> 
    <br /> 
    <br /> 
    <asp:Button ID="BtnSave" runat="server" Text="SAVE" onclick="BtnSave_Click" /> 
    <br /> 
    <br /> 
    <br /> 
    <asp:Image ID="Image1" runat="server" /> 
</div> 

그리고 버튼 클릭 이벤트에서 나는 다음과 같은 코드를 작성했습니다

하지만 이미지 URL이 이미지 개체가 아니기 때문에 <asp:Image ID="Image1" runat="server" />에 이미지를 넣지 않습니다. (

당신이 할 수있는 일은 이미지를 제공하는 별도의 페이지를 설정하고 이미지 ID 또는 이미지와 관련된 다른 고유 식별자를 전달하여 <asp:Image ID="Image1" runat="server" />에 표시하는 것입니다. 단순히 솔루션에 새 페이지를 추가 ImageServer.aspx 및 page_load 쓰기에 는 다음과 같은 말 :

protected void BtnSave_Click(object sender, EventArgs e) 
{ 
    .... 
    //SAVE IMAGE TO DB AND GET IMAGE ID (TO IDENTIFY THIS IMAGE) 
    image.ImageUrl = "YOUR_SERVER\ImageServer.aspx?id=" + IMAGE_ID; 
} 
관련 문제