1

我在更新面板中有一个 asyncfileupload 控件。

在 UploadedComplete 中,我将文件保存到服务器。

 protected void ImageFileUpload_UploadedComplete(object sender, AjaxControlToolkit.AsyncFileUploadEventArgs e)
{
    System.Threading.Thread.Sleep(5000);
        if (ImageFileUpload.HasFile)
        {
            Extension= System.IO.Path.GetExtension(ImageFileUpload.FileName);

            TempImageUpload(ImageFileUpload.FileName.ToString(), Extension.Value);
            FileImage.ImageUrl = "~/Temp/" + Session["ID"].ToString() + Extension.Value;
            RemoveImageButton.Visible = true;
        }
}

该文件成功上传并触发正确的服务器端代码。

但不要更新视图状态和控件。

 private string Extension
{
    get { 
        if(ViewState["Extension"]==null)
            return string.Empty;
        else
       return (string)ViewState["Extension"]; }
    set { ViewState["Extension"] = value; }
}
4

1 回答 1

1

我在 UploadedComplete 事件上保存文件。

  protected void ImageFileUpload_UploadedComplete(object sender, AjaxControlToolkit.AsyncFileUploadEventArgs e)
  {
    if (ImageFileUpload.HasFile)
    {
      ImageFileUpload.SaveAs(Request.PhysicalApplicationPath + "Temp\\" + Session["ID"].ToString() + extension);
    }
  }

并在客户端进行更改控制,我使用 OnClientUploadComplete。

function uploadComplete(sender, args) {
        var filename = args.get_fileName();
        document.getElementById('<%= Extension.ClientID  %>').value = "." + filename.split('.').pop();
        var btn = document.getElementById('<%= RemoveImageButton.ClientID  %>')
        btn.style.visibility = 'visible';
    }
于 2013-01-01T05:04:13.603 回答