【问题标题】:File Upload is not working文件上传不起作用
【发布时间】:2010-12-27 23:25:37
【问题描述】:

我在我的网站中使用文件上传。我正在上传 word 文档(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文档。现在,它正在工作.. !!无论如何,我需要解决这个问题!谁给我个主意!!

【问题讨论】:

  • 你是如何让我的代码可见的?我试过了,它没有来
  • 我在 follow: 和代码之间添加了一个空格。
  • 看你的 onclick 功能...
  • vaishu 你的 aspx 代码是错误的地方文件上传更新面板内...

标签: asp.net file file-upload


【解决方案1】:

海外书

FileUpload 控件在用于作为异步回发的一部分上传文件时与 UpdatePanel 不兼容。

只需查看 AJAX 文档即可。 UpdatePanel (http://ajax.asp.net/docs/overview/UpdatePanelOverview.aspx) 中不支持 FileUpload 控件:

使用 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

【讨论】:

  • 不......它不起作用。文件上传控件不采用任何值。多诺,问题出在哪里!!!
  • 检查你的问题 aspx 一...文件上传在更新面板之外
  • “对象引用未设置为对象实例”这是我得到的错误。意味着,文件上传是空的。这就是Control的问题。我也尝试过这种方式..但是,没有用!!!实际上,我已经在母版页中使用更新面板了。
  • Somewhere File Upload 控件在按钮单击后刷新.. Dono where!!
  • S..我也改了...没用!
【解决方案2】:

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

【讨论】:

    【解决方案3】:

    这很好用,我终于解决了问题... 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>
    

    【讨论】:

      猜你喜欢
      • 2014-01-09
      • 2013-03-17
      • 2013-12-09
      • 2015-02-11
      • 2011-10-10
      • 2017-10-06
      • 2016-04-11
      • 2013-02-05
      • 2016-03-24
      相关资源
      最近更新 更多