2010-01-08 6 views
1

이미지를 업로드하려고하는데 업로드 한 후 이미지 컨트롤에 표시하고 싶습니다. 내 코드는 다음과 같습니다ASP.Net Ajax 파일 업로드

<form id="form1" runat="server"> 
    <div> 

     <asp:ScriptManager ID="ScriptManager1" runat="server"> 
     </asp:ScriptManager> 

     <asp:UpdatePanel ID="UpdatePanel1" runat="server"> 
      <ContentTemplate> 
       <asp:FileUpload ID="FileUploadTest" runat="server" /> 
       <asp:Button ID="ShowImage" runat="server" Text="Show" 
        onclick="ShowImage_Click" /> 
       <asp:Image ID="ImageUploaded" runat="server" Height="150px" Width="150px" 
        ImageUrl="~/images/blankImage.gif" /> 
       <asp:Label ID="Label1" runat="server" Text=""></asp:Label> 
      </ContentTemplate> 
      <Triggers> 
       <asp:PostBackTrigger ControlID="ShowImage" /> 
      </Triggers> 
     </asp:UpdatePanel> 
    </div> 
    </form> 

C# 코드는 다음과 같습니다

protected void ShowImage_Click(object sender, EventArgs e) 
     { 
      Label1.Text = ""; 
      if (FileUploadTest.HasFile) 
      { 
       try 
       { 
        if (FileUploadTest.PostedFile.ContentType == "image/jpeg") 
        { 
         if (FileUploadTest.PostedFile.ContentLength < 102400) 
         { 
          string filename = Path.GetFileName(FileUploadTest.FileName); 
          string imageSavePath = Server.MapPath("~/images/") + filename; 
          FileUploadTest.SaveAs(imageSavePath); 
          ImageUploaded.ImageUrl = imageSavePath; 
          ImageUploaded.Visible = true; 
          Label1.Text = "Upload status: File uploaded!"; 
         } 
         else 
          Label1.Text = "Upload status: The file has to be less than 100 kb!"; 
        } 
        else 
         Label1.Text = "Upload status: Only JPEG files are accepted!"; 
       } 
       catch (Exception ex) 
       { 
        Label1.Text = "Upload status: The file could not be uploaded. The following error occured: " + ex.Message; 
       } 
      } 
      else 
      { 
       Label1.Text = "No File !!!"; 
      } 

     } 

그러나 쇼 버튼을 누른 후, 이미지가 성공적으로 업로드됩니다. 그러나 이미지 컨트롤이 사라졌습니다. 아무도 그것에 대해 나를 도울 수 있습니까?

+1

Ajax 파일 업로드는 불가능하지만 iframe을 사용하여 위조 할 수 있습니다. 브라우저에서 직접 이미지 src로 이동하면 이미지를 볼 수 있습니까? –

+0

성공적으로 업로드되지 않았습니다. ajax 요청으로 파일을 업로드 할 수 없습니다. – Phill

답변

0

이미지 URL을 유효한 URL로 설정해야한다고 생각합니다. Server.MapPath 메소드의 결과를 확인하십시오. 이미지에 URI 위치를 설정해야합니다.

Morzel

+0

나는 당신의 코드를 시도했다. 필자의 경우 URL은 'D : \\ --- 소스 --- \ MapPath \\ MapPath \\ images \\ P5160025.JPG'로 설정됩니다. 올바른 URL이 아닙니다. 이미지 URL을 변경하려고합니다. ImageUploaded.ImageUrl = "~/images /"+ filename; – Morzel