使用ajax时无法获取上传的文件名

时间:2013-05-30 10:28:23

标签: c# asp.net ajax autopostback

我正在使用Ajax文件上传控件来上传文件,但是当我将autopostback属性设置为true的复选框或单选按钮时,我检查然后FileName返回值null < / p>

protected void AsyncFileUpload1_UploadedComplete(object sender, AjaxControlToolkit.AsyncFileUploadEventArgs e)
{
    try
    {
        if (AsyncFileUpload1.IsUploading)
        {
            AsyncFileUpload1.SaveAs(MapPath("~/Images/Accounts/" + AsyncFileUpload1.FileName));
        }
    }
    catch (Exception ex)
    {

    }
}

上传后,任何回发控件都会被触发,它只返回null,而viewstate也无效

1 个答案:

答案 0 :(得分:1)

使用viewstate是一个服务器控件,使用回发将清除,因此首先将值存储在javascript中,然后按如下方式使用

Java脚本方法:

 function OnClientAsyncFileUploadComplete(sender, args) {
                      __doPostBack('filename', args.get_fileName());

        }

        function saveLogo(ImageName) {
            __doPostBack('filename', args.get_fileName());
        }
页面加载中的

请输入以下代码:

IN .CS

           if (IsPostBack)
            {

                string eventTarget = this.Request["__EVENTTARGET"];
                if (eventTarget == "filename")
                {
                    ViewState["EIName"] = this.Request["__EVENTARGUMENT"].ToString();
                }
            }

ViewState [“EIName”]包含文件名

您可以使用页面中的任何位置