2013-05-27 70 views
0

我使用ASP.NET,我需要一種簡單的方法異步上傳文件。所以我嘗試使用asyncfileupload(Ajax控件工具包),但我也需要將參數傳遞給服務器端。我怎樣才能做到這一點 ?謝謝。使用asyncfileupload將參數傳遞到服務器端(ajaxcontroltoolkit)

這裏是我的代碼:

在客戶端:

<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

閱讀此http://www.asp.net/ajaxLibrary/AjaxControlToolkitSampleSite/AsyncFileUpload/AsyncFileUpload.aspx閱讀並讓我知道如果你仍然需要幫助 – skhurams

+0

@skhurams,我做了,並且沒有辦法將參數傳遞到服務器端。 –

+0

什麼樣的參數解釋? – skhurams

回答

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值;

+0

非常感謝。你救了我 !! –

+1

使用上述代碼的查詢字符串數據集在服務器端UploadComplete事件中似乎不可用。我正在使用2013年6月發行版。 – MatthewT

+0

太棒了,但它的工作原理,但唯一的問題是,當有完整的頁面回發地址欄中顯示URL中附加的任何內容。 –

相關問題