2013-10-12 24 views
0

我想使用FileUpload Control將Image保存到數據庫。單擊BtnSave後,HasFiles將始終返回false。我嘗試使用和不使用UpdatePanel,但找不到解決方案。FileUpload空引用錯誤

我的代碼是:

protected void BtnSave_Click(object sender, EventArgs e) 
    { 
     if (FileUpload1.HasFile == true) 
     { 
      var ChNumber = txtNumber.Text; 

      string img = this.FileUpload1.PostedFile.FileName; 
    //Save image to database function 
     } 
else 
{ 
    lblStatus.Text="Image not Uploaded"; 
} 
} 
+0

那麼空引用錯誤在哪裏? –

+0

請記住,FileUpload控件在UpdatePanel中時不起作用。 –

+0

如果(FileUpload1.HasFile == true)始終返回false,即使我導航到圖像@yosi,但文件未保存的原因不在此代碼 –

回答

0

嘗試用一個簡單的形式,而不UpdatePanel的。這裏的標記:

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm1.aspx.cs" Inherits="WebForm1" %> 

<!DOCTYPE html> 

<html xmlns="http://www.w3.org/1999/xhtml"> 
<head runat="server"> 
    <title></title> 
</head> 
<body> 
    <form id="form1" runat="server"> 
    <div> 
     <asp:FileUpload ID="FileUpload1" runat="server" /> 
     <asp:Button ID="BtnSave" runat="server" Text="Button" OnClick="BtnSave_Click" /> 
     <asp:TextBox ID="txtNumber" runat="server"></asp:TextBox> 
     <asp:Label ID="lblStatus" runat="server" Text="Label"></asp:Label> 
    </div> 
    </form> 
</body> 
</html> 

而這裏的代碼:

using System; 

public partial class WebForm1 : System.Web.UI.Page 
{ 
    protected void Page_Load(object sender, EventArgs e) 
    { 
    } 

    protected void BtnSave_Click(object sender, EventArgs e) 
    { 
     if (FileUpload1.HasFile == true) 
     { 
      var ChNumber = txtNumber.Text; 

      string img = this.FileUpload1.PostedFile.FileName; 
      //Save image to database function 
     } 
     else 
     { 
      lblStatus.Text = "Image not Uploaded"; 
     } 
    } 
} 

我在if (FileUpload1.HasFile == true)設置brekapoint看到上傳的文件是存在的。

+0

感謝你們兩個畫廊男孩和afzalulh,問題是與UpdatePanel。現在我正在嘗試使用Ajax AsynFileUplad。但是當我將它拖放到我的表單上時。它顯示我缺少參考錯誤。 – ZahidKakar