ASP.NET AJAX AsyncFileUpload 上传完成事件 UploadedComplete 不触发。

4

非常感谢您的关注和支持,

我是ASP.NET AJAX AsyncFileUpload的新手,我创建了一个aspx页面来测试它,但是似乎这个控件存在一些问题,因为服务器端的UploadedComplete事件没有触发。

以下是aspx代码:

<form id="form1" runat="server" method="post" enctype="multipart/form-data">
<div>
    <asp:ScriptManager ID="ScriptManager1" runat="server">
    </asp:ScriptManager>
    <asp:UpdatePanel ID="UpdatePanel1" runat="server">
    <ContentTemplate>
    <cc1:AsyncFileUpload ID="AsyncFileUpload1" runat="server" OnUploadedComplete="AsyncFileUpload1_UploadedComplete" />
    <asp:Label ID="Label1" runat="server" Text="Label"></asp:Label>
    </ContentTemplate>
    </asp:UpdatePanel>
</div>
</form>

并且代码的背后

public partial class Tester : System.Web.UI.Page
{
    protected void AsyncFileUpload1_UploadedComplete(object sender, AjaxControlToolkit.AsyncFileUploadEventArgs e)
    {
        this.Label1.Text = "OK";
    }
}

请问有人能告诉我为什么它不起作用吗? 非常感谢。

2个回答

7
当您使用AsyncFileUpload时,必须在“form”标签中设置正确的参数,该标签位于您的页面或主页面中:
 <form id="form1" runat="server" enctype="multipart/form-data" method="post">

如果您没有设置正确的enctype enctype="multipart/form-data"方法,UploadedComplete将永远不会触发,并且您将无法获取FileUpload.FileBytes,因为只有在执行UploadedComplete期间,FileUpload.HasFile才返回true。
此外,以前版本的AsyncFileUpload在Chrome上无法工作。从4.1.50731.0版本解决了这个问题。

0
通常不建议同时使用UpdatePanel和UploadFile控件。这主要是由于与设置UploadFile文件相关的安全问题是相同的。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接