2009-12-21 106 views
1

這是我的文件上傳控制頁面的部分代碼。這是我正在使用的那個。上傳文件時,文件名,張貼文件,一切都是空的。我也嘗試了ajax文件上傳。它顯示錯誤「未將對象引用設置爲實例」。 Wat是我的編碼問題?文件上傳錯誤

<table> 
    <tr> 
     <td align="center"> 
      <span class="txt"> 
       <asp:UpdatePanel ID="UpdatePanel1" runat="server"> 
        <ContentTemplate> 
         <asp:FileUpload ID="fpResumenew" runat="server" Visible="false" Width="226px" /> 
        </ContentTemplate>      
       </asp:UpdatePanel> 
      </span> 
     </td> 
    </tr> 
    <tr> 
     <td align="center"> 
      &nbsp; 
     </td> 
    </tr> 
    <tr> 
     <td style="vertical-align: top" align="center"> 
      <asp:UpdatePanel ID="UpdatePanel2" runat="server"> 
       <ContentTemplate> 
        <asp:Button ID="btnUpload" Font-Bold="true" 
        DisabledText="Processing..." Visible="false" 
        Text="Upload" BackColor="Maroon" ForeColor="White" runat="server" OnClick="btnUpload_Click" /> 
       </ContentTemplate> 
       <Triggers> 
         <asp:PostBackTrigger ControlID="btnUpload" /> 
        </Triggers> 
      </asp:UpdatePanel> 
     </td> 
    </tr> 
</table> 

保護無效btnUpload_Click(對象發件人,EventArgs的)

{ 

    string strname = fpResumenew.FileName.ToString(); 

    if (fpResumenew.PostedFile.FileName.Trim().Length != 0) 

    { 


       byte[] binary = new byte[fpResumenew.PostedFile.ContentLength]; 
       binary = fpResumenew.FileBytes; 
       string doc = fpResumenew.FileName; 
       string contenttype = fpResumenew.PostedFile.ContentType; 
       objservice1.UpdateResume(int.Parse(Session["LoginId"].ToString()), doc, binary, contenttype); 
       Response.Redirect("delresume.aspx?Action=U"); 


    } 
    else 
    { 
     lblmsg.Text = "File is not Found"; 
     lblmsg.Visible = true; 

    } 


} 
+0

即使我上傳了一個文件,fpResumenew.FileName也是空的。 – Nila 2009-12-21 05:28:08

回答

0

沒有什麼工作對我來說..問題是,我使用的是在同一頁面三個按鈕。其他按鈕初始化文件上傳控件。所以,當點擊上傳按鈕時,文件名是空的。所以,我用另一個頁面上傳Word文檔。現在,它正在工作..!

1

嘗試添加

<Triggers> 
    <asp:PostBackTrigger ControlID="btnUpload" /> 
</Triggers> 

聲明你的第一個更新面板,而不是第二個。觸發器需要位於包含FileUpload控件的面板中,而不是包含該按鈕的面板。 PostBackTrigger強制文件上傳定期回傳,這就是它需要滿足瀏覽器安全要求的要求。

+0

S ..我試着按你說的。相同探頭.. – Nila 2009-12-21 05:55:36

+0

嗨! 我發現這個代碼的問題。實際上,我在同一個網頁中使用了另一個按鈕,因此,該按鈕的文件上傳控件也正在刷新。現在,笏是解決這個? – Nila 2009-12-21 06:11:42

0

據我所知,FileUpload控件可以防止在不使用自己的「瀏覽...」按鈕的情況下上傳文件。這可以防止通過自動上傳文件來濫用客戶端文件系統。

唯一的解決方案是在控件上使用一個圖層,顯示更好的視圖,但保留使用瀏覽按鈕或手動輸入路徑的可能性。

你可以找到關於如何風格在這裏的文件上傳擴展的解決方案:Link