【问题标题】:Cannot get the uploaded file name while using ajax使用ajax时无法获取上传的文件名
【发布时间】:2013-05-30 10:28:22
【问题描述】:

我正在使用 Ajax 文件上传控件上传文件,它可以正常工作,但是当我将 autopostback 属性设置为 true 的复选框或单选按钮进行检查时,FileName 返回值 null

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

    }
}

上传后,任何回发控件触发它只会返回 null 并且视图状态也不起作用

【问题讨论】:

  • 请从服务器添加更多代码

标签: c# asp.net ajax autopostback


【解决方案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"] 包含文件名

你可以在页面的任何地方使用

【讨论】:

    猜你喜欢
    • 2012-06-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-07-16
    • 2018-07-27
    • 2011-08-20
    • 2011-11-22
    相关资源
    最近更新 更多