使用asyncfileupload(ajaxcontroltoolkit)将参数传递到服务器端

时间:2013-05-27 14:12:44

标签: asp.net ajax ajaxcontroltoolkit

我使用ASP.NET,我需要一种简单的方法来异步上传文件。所以我尝试使用asyncfileupload(Ajax控件工具包),但我还需要将参数传递给服务器端。我怎样才能做到这一点 ?感谢。

这是我的代码:

在客户端:

<asp:ToolkitScriptManager ID="ToolkitScriptManager1" runat="server">
</asp:ToolkitScriptManager>
 <asp:AsyncFileUpload ID="afuMedia" runat="server" UploaderStyle="Modern" OnUploadedComplete="afuMedia_UploadedComplete" />

在服务器端:

  protected void afuMedia_UploadedComplete(object sender, AsyncFileUploadEventArgs e)
  {
      //int id = int.Parse(Request.QueryString["id"]);
      string mediaPath = ConfigurationParameters.MediaPath;
      string filePath = CurrentBrand.BrandCode + "\\" + CurrentCulture.CultureCode + "\\" + "highlights-" + id;
      string physicalPath = Path.Combine(MapPath("~/" + mediaPath), filePath);

      afuMedia.SaveAs(physicalPath);
  }

1 个答案:

答案 0 :(得分:2)

通过OnClientUploadStarted属性添加上传启动的客户端处理程序,并按如下所示使用它:

<asp:AsyncFileUpload ID="afuMedia" runat="server" UploaderStyle="Modern"
    OnUploadedComplete="afuMedia_UploadedComplete" 
    OnClientUploadStarted="afuMedia_OnClientUploadStarted" />

function afuMedia_OnClientUploadStarted(sender, args){
    var id = 123;
    var url = sender.get_postBackUrl();
    url += url.indexOf("?") === -1 ? "?" : "&";
    url += ("id=" + id.toString());
    sender.set_postBackUrl(url);
}

使用此代码,您需要做的就是提供正确的id值;