2009-12-18 62 views
2

我在我的網站上傳文件上傳。我正在上傳Word Document(Doc,Docx)。突然,它不工作。它沒有得到文件名。它顯示爲空!我的代碼如下:文件上傳不起作用

<asp:Content ID="Content1" runat="server" ContentPlaceHolderID="ContentPlaceHolder1"> 

<table width="100%" align="center"> 
    <tr> 
     <td style="height: 21px" align="center"> 
      <span class="lbl"></span> 
      <asp:UpdatePanel ID="UpdatePanel2" runat="server"> 
       <ContentTemplate> 
        <asp:Button ID="btnResumedload" Text="Download Resume" runat="server" BackColor="Maroon" 
         ForeColor="White" Font-Bold="true" OnClick="btnResumedload_Click" Height="27px" 
         Width="195px" /> 
       </ContentTemplate> 
      </asp:UpdatePanel> 
     </td> 
    </tr> 
    <tr> 
     <td align="center"> 
      <asp:UpdatePanel ID="UpdatePanel4" runat="server"> 
       <ContentTemplate> 
        <asp:Button ID="btnUploadnew" Text="Upload New" runat="server" BackColor="Maroon" 
         ForeColor="White" Font-Bold="true" OnClick="btnUploadnew_Click" Height="30px" 
         Width="198px" /> 
       </ContentTemplate> 
      </asp:UpdatePanel> 
     </td> 
    </tr> 
    <tr> 
     <td align="center"> 
      <asp:UpdatePanel ID="UpdatePanel3" runat="server"> 
       <ContentTemplate> 
        <asp:Button ID="btnDel" Height="30px" Width="198px" OnClientClick="return confirm('Are you sure?');" 
         BackColor="Maroon" ForeColor="White" Font-Bold="true" Text="Delete Resume" runat="server" 
         OnClick="btnDel_Click"></asp:Button> 
       </ContentTemplate> 
      </asp:UpdatePanel> 
     </td> 
    </tr> 
    <tr> 
     <td align="center"> 
      <asp:Label ID="lblmsg" runat="server" Font-Bold="True" ForeColor="Red" Visible="False" 
       Height="17px" Width="855px"></asp:Label> 
     </td> 
    </tr> 
    <tr> 
     <td align="center"> 
      <span class="txt"> 
       <asp:UpdatePanel ID="UpdatePanel1" runat="server"> 
        <ContentTemplate> 
         <%--<ajaxToolkit:AsyncFileUpload ID="fpResumenew" runat="server" Visible="false" />--%> 
         <asp:FileUpload ID="fpResumenew" runat="server" Visible="false" Width="226px" /> 
        </ContentTemplate> 
        <Triggers> 
         <asp:PostBackTrigger ControlID="btnUpload" /> 
        </Triggers> 
       </asp:UpdatePanel> 
      </span> 
     </td> 
    </tr> 
    <tr> 
     <td align="center"> 
      &nbsp; 
     </td> 
    </tr> 
    <tr> 
     <td style="vertical-align: top" align="center"> 
      <%--<asp:Button ID="btnUpload" Font-Bold="true" DisabledText="Processing..." Visible="false" 
         Text="Upload" BackColor="Maroon" ForeColor="White" runat="server" OnClick="btnUpload_Click" />--%> 
      <cc1:ClickOnceButton ID="btnUpload" Font-Bold="true" DisabledText="Processing..." 
       Visible="false" Text="Upload" BackColor="Maroon" ForeColor="White" runat="server" 
       OnClick="btnUpload_Click" DisableAfterClick="True" /> 
     </td> 
    </tr> 
</table> 

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

{ 

    string strfilename = fp.FileName.ToString(); 

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

    { 

     binary = new byte[fp.PostedFile.ContentLength]; 

     binary = fp.FileBytes; 

     doc = fp.FileName; 

     contenttype = fp.PostedFile.ContentType; 


    } 

}

只是一個樣本!


沒有什麼工作對我來說..問題是,我使用的是在同一頁面三個按鈕。其他按鈕初始化文件上傳控件。所以,當點擊上傳按鈕時,文件名是空的。所以,我用另一個頁面上傳Word文檔。現在,它正在工作..!無論如何,我需要這個解決方案!任何人都給我主意!當它們被用來上傳文件作爲異步回發的一部分

+0

*我的代碼如下*? – 2009-12-18 08:43:43

+0

代碼在哪裏? – 2009-12-18 08:44:01

+0

你是如何讓我的代碼可見的?我試過了,它不是 – Nila 2009-12-18 08:46:00

回答

4

海vaishu

的FileUpload控件不兼容的UpdatePanel。

只需檢查AJAX文檔。 FileUpload控件不是一個UpdatePanel內支持(http://ajax.asp.net/docs/overview/UpdatePanelOverview.aspx):

使用的asp:postbacktrigger代替asyncpostbacktrigger

<asp:updatepanel runat="server" id="UpdatePanel1"> 
    <contenttemplate> 
     <asp:FileUpload runat="server" id="FileUpload1" /> 
     <asp:button runat="server" id="ButtonSubmit" text="Postback" /> 
    </contenttemplate> 
    <triggers> 
     <asp:postbacktrigger controlid="ButtonSubmit" /> 
    </triggers> 

</asp:updatepanel> 

使用AJAX異步文件上傳:

http://www.asp.net/(S(fu2l2uzphr2u3u45q2dnez55))/ajax/AjaxControlToolkit/Samples/AsyncFileUpload/AsyncFileUpload.aspx

+0

你有什麼錯誤?可以指定確切的錯誤類型 – 2009-12-18 09:20:59

+0

否....它不起作用。文件上傳控件沒有取任何值。 Dono,是誰的問題! – Nila 2009-12-18 09:27:52

+0

等待我正在通過你的代碼,並讓你知道 – 2009-12-18 09:35:39

2

回發觸發器不起作用的原因是因爲FileUpload控件被設置爲visible = false。如果您使用display:none,則回發觸發器將起作用。

+0

尼斯提示,丹尼斯 – 2013-03-21 05:52:57

0

這工作得很好,我終於解決了問題... ButtonSubmit由觸發器重新加載,因此頁面從控件獲取信息。

<asp:updatepanel runat="server" id="UpdatePanel1"> 
    <contenttemplate> 
     <asp:FileUpload runat="server" id="FileUpload1" /> 
     <asp:button runat="server" id="ButtonSubmit" text="Postback" /> 
    </contenttemplate> 
    <triggers> 
     <asp:postbacktrigger controlid="ButtonSubmit" /> 
    </triggers> 

</asp:updatepanel>