2013-07-10 3 views
0

저는 Ajax AsyncFileUpload 컨트롤을 사용하고 있습니다. 나는 fileuploader에 때 사용자가 클릭 요구 사항을 가지고 그림에서 파일을 선택하고 즉시 사진을 내가 이제 다음과 같은 방법asp.net에서 AsyncFileUpload 컨트롤을 사용하여 이미지가 데이터베이스에서 연결되지 않는 이유는 무엇입니까?

protected void fileUploadComplete(object sender, AjaxControlToolkit.AsyncFileUploadEventArgs e) 
    {  
string imagepath = Server.MapPath("~/Pics/"); 
      string serverfilename = Path.GetFileName(AsyncFileUpload1.PostedFile.FileName); 
      string fullpath = Path.Combine(imagepath, serverfilename); 
      string path = "~/Pics/" + serverfilename; 
      //string filename = System.IO.Path.GetFileName(AsyncFileUpload1.FileName); 
      //string path = Server.MapPath("~/Pics/") + filename; 

      AsyncFileUpload1.SaveAs(fullpath); 
      // FileUpload1.PostedFile.SaveAs(path); 
      SqlCommand cmd = new SqlCommand("insert findfriend values('" + path + "','" + TextBox1.Text + "')", con); 
      cmd.CommandType = CommandType.Text; 
      cmd.ExecuteNonQuery(); 

      SqlCommand GetImage = new SqlCommand("select * from findfriend where name='" + TextBox1.Text + "'", con); 
      GetImage.CommandType = CommandType.Text; 
      SqlDataReader dr = GetImage.ExecuteReader(); 
      dr.Read(); 
      if (dr.HasRows) 
      { 



        Image1.ImageUrl = dr["picture"].ToString(); 


      } 
} 

에게 내 영문 원본

<html xmlns="http://www.w3.org/1999/xhtml"> 
<head runat="server"> 
    <title></title> 
    <script type="text/javascript"> 
     // This function will execute after file uploaded successfully 
     function uploadComplete() { 
      document.getElementById('<%=lblMsg.ClientID %>').innerHTML = "File Uploaded Successfully"; 

     } 
     // This function will execute if file upload fails 
     function uploadError() { 
      document.getElementById('<%=lblMsg.ClientID %>').innerHTML = "File upload Failed."; 


         } 

</script> 
</head> 
<body> 
    <form id="form1" runat="server"> 
    <div> 
    <ajax:ToolkitScriptManager ID="scriptManager1" runat="server"/> 
     Your Name:&nbsp;&nbsp;&nbsp; 
     <asp:TextBox ID="TextBox1" runat="server" Width="223px"></asp:TextBox> 
     <br /> 
     <br /> 
     Upload Picture:<asp:FileUpload ID="FileUpload1" runat="server" /> 
     <br /> 
     <ajax:AsyncFileUpload ID="AsyncFileUpload1" OnClientUploadComplete="uploadComplete" OnClientUploadError="uploadError" 
CompleteBackColor="White" Width="350px" runat="server" UploaderStyle="Modern" UploadingBackColor="#CCFFFF" 
ThrobberID="imgLoad" OnUploadedComplete="fileUploadComplete" /> 
     <asp:Label ID="lblMsg" runat="server" Text="Label"></asp:Label> 
     <br /> 
     <br /> 

     <asp:Image ID="Image1" runat="server" Height="295px" Width="338px" /> 
     <br /> 
     <asp:Button ID="Button1" runat="server" onclick="Button1_Click" Text="Upload" /> 
     &nbsp;<asp:Button ID="Button2" runat="server" onclick="Button2_Click" 
      Text="Button" /> 
     <br /> 
     <asp:Label ID="Label1" runat="server"></asp:Label> 

    </div> 
    </form> 
</body> 
</html> 

을 사용하고 내 이미지 컨트롤에 표시됩니다 문제는 내 그림 경로가 데이터베이스에 저장되고 있습니다. 이미지가 이미지 컨트롤과 바인딩되지 않습니다. 전문가가 잘못된 위치를 알려주십시오.

+0

당신은 어떤 문제를 언급하지 않았다 ~ 사용하여 절대 경로를 사용할 필요가 없습니다 데이터베이스에서 오는해야 !! !! –

+0

다시 질문을 확인하십시오 나는이 질문을 편집하십시오 –

답변

0

루트 수준 l의 경로, 즉 전체 경로에 액세스하려고했기 때문입니다. ike C :/Folder1/Folder2; 어떤 웹 사이트의 경우 작동하지 않습니다.

솔루션 폴더에 Pic 폴더가 있다고 가정합니다.

그래서 경로는

Image1.ImageUrl = @"Pic\logo.jpg"; 

Pic\logo.jpg" 

같은이 값이

당신은

+0

나는 그 자신을 시도하지만 작동하지 않으며 내 소스를 볼 때 그 이미지는 src가 다시 공백입니다 –

+0

루트 레벨 경로가 웹 사이트의 경우 작동하지 않습니다 무엇을 원한다면 루트를 사용하고 싶습니다. 수준의 폴더 구조? –

+0

웹 사이트를 참조하여 상대 경로 여야합니다. 예 : http://Yourwebsite.com/Pics/Image.jpg –