我使用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);
}
答案 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值;