2010-01-08 199 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,你能看到圖像嗎? – 2010-01-08 19:06:58

+0

它從未成功上傳。您不能在ajax請求中上傳文件。 – Phill 2011-05-29 03:31:56

回答

0

我認爲你必須將圖片網址設置爲有效的網址。檢查你的Server.MapPath方法的結果。 你必須爲你的圖像設置一個URI位置。

Morzel

+0

我試過你的代碼。在我的情況下,該網址將被設置爲'D:\\ --- Source --- \\ MapPath \\ MapPath \\ images \\ P5160025.JPG'。這不是一個有效的網址。 讓我們嘗試更改您的圖片網址: ImageUploaded.ImageUrl =「〜/ images /」+ filename; – Morzel 2011-02-22 21:44:55