文件上传不起作用

我在我的网站上使用文件上传。 我正在上传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>

protected void btn_Click(object sender,EventArgs e)

{

    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文档。 现在,它正在工作..! 无论如何,我需要这个解决方案! 任何人都给我主意!


Hai vaishu

当FileUpload控件用于将文件作为异步回发的一部分进行上传时,它们与UpdatePanel不兼容。

只需检查AJAX文档。 UpdatePanel不支持FileUpload控件(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


回发触发器不起作用的原因是因为FileUpload Control设置为visible = false。 如果您使用display:none,则回发触发器将起作用。


这工作得很好,我终于解决了问题... 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>
链接地址: http://www.djcxy.com/p/46775.html

上一篇: File Upload is not working

下一篇: How to have jQuery restrict file types on upload?