2014-10-10 65 views
0

我有一個包含FileUpload控件的UpdatePanel和一個用於上傳所選照片的​​按鈕。我嘗試使用斷點來檢測文件是否真的被選中,並且我發現FileUpload的HasFile屬性爲false。它在我刪除UpdatePanel時起作用。無法使用UpdatePanel在ASP.NET中使用FileUpload控件上傳照片

ASPX marksups:

<asp:UpdatePanel ID="UPProf" runat="server"> 
<ContentTemplate> 
<asp:FileUpload ID="FUDP" runat="server" /> 
<asp:Button ID="BUDP" runat="server" OnClick="BUDP_Click" Text="Upload your photo" /> 
</ContentTemplate> 
<Triggers> 
<asp:AsyncPostBackTrigger ControlID="BUDP" EventName="Click" /> 
</Triggers> 
</asp:UpdatePanel> 

下面是它的CS代碼:

protected void BUDP_Click(object sender, EventArgs e) 
{ 
    try 
    { 
     if (FUDP.HasFile) // code doesn't pass this if condition 
     { 
      FUDP.SaveAs("D:/Pictures/" + count + ".jpeg"); // count's just test value 
     } 
     else 
      LState.Text = "Select your photo first."; 
    } 
    catch (Exception ex) 
    { 
     LState.Text = ex.Message; 
     if (ex.InnerException != null) 
      LState.Text = LState.Text + ex.InnerException.Message; 
    } 
} 

回答

1

上傳需要整頁的請求。這是所有AJAX框架中用於異步調用應用程序的XmlHttpRequest組件的限制。

刪除UpdatePanel或使BUDP按鈕執行回發。

<asp:UpdatePanel ID="UPProf" runat="server"> 
    <ContentTemplate> 
     <asp:FileUpload ID="FUDP" runat="server" /> 
     <asp:Button ID="BUDP" runat="server" OnClick="BUDP_Click" 
      Text="Upload your photo" /> 
    </ContentTemplate> 
    <Triggers> 
     <asp:PostBackTrigger ControlID="BUDP" /> 
    </Triggers> 
</asp:UpdatePanel> 
+0

哦UpdatePanel的危險! – beautifulcoder 2014-10-10 17:01:12

+0

刷新頁面,它的工作。謝謝。我不想讓它刷新。任何其他建議?再次感謝。 – 2014-10-10 17:09:35

+0

@AKshayRaut這裏有很多第三方組件。您可以嘗試[AsyncFileUpload](http://ajaxtoolkit.net/AsyncFileUpload/AsyncFileUpload.aspx)。我使用[telerik](http://demos.telerik.com/aspnet-ajax/imageeditor/examples/imageupload/defaultcs.aspx?product=asyncupload) – Win 2014-10-10 18:01:11

相關問題