2014-02-15 100 views
0
protected void File_Upload(object sender, AjaxFileUploadEventArgs e) 
{ 
    List<String> pathlist = null; 
    if (Session["UploadedPath"] != null) 
    { 
     pathlist = (List<String>)Session["UploadedPath"]; 
    } 
    else 
    { 
     pathlist = new List<string>(); 
    } 
    string filename = e.FileName; 
    string path = "~/Documents/" + filename; 
    this.AjaxFileUpload1.SaveAs(Server.MapPath(path)); 
    pathlist.Add(path); 
    Session["UploadedPath"] = pathlist; 
} 

即時得到的誤差這樣無法投射型「System.String」的對象爲類型「System.Collections.Generic.List`1 [System.String]」

無法轉換的對象鍵入System.String鍵入System.Collections.Generic.List1[System.String].

我如何保存多個文件上傳到DATABSE

+0

'Session [「UploadedPath」]'內部的值是什麼? – Sachin

+0

什麼是Session [「UploadedPath」]的數據類型 –

+0

爲字符串Session [「UploadPath」]做一個完整的搜索項目,我敢打賭,你會發現一個地方,你將它設置爲一個字符串而不是一個列表 – Steve

回答

0

我看來像你UploadedPath變量是string,不是List<string>所以你不能執行下列投

pathlist = (List<String>)Session["UploadedPath"]; 

你需要確保當你設置UploadedPath絕對List<string>而不是string一個實例。

0

你確定'Session [「UploadedPath」];'包含一個列表類型值?我認爲它包含一個字符串值。

pathlist = (List<String>)Session["UploadedPath"]; 

將返回上述異常。

請重新檢查你的存儲在「UploadedPath」會議的價值,並確保其列表類型

希望下面的代碼會幫助你。但請確保您是否在Session [「UploadedPath」]中保存了某些內容;之前,確保它是一個List類型。

我對AjaxFileUpload並不熟悉,如果'e'一次只包含一個文件,下面的代碼就可以工作。但是如果它包含多個文件,則必須遍歷它並將每個文件添加到「路徑列表」,然後將其保存到會話

protected void File_Upload(object sender, AjaxFileUploadEventArgs e) 
{ 
    List<String> pathlist = new List<String>(); 

    if (Session["UploadedPath"] != null) 
    { 
     pathlist = (List<String>)Session["UploadedPath"]; 
    } 

    string filename = e.FileName; 
    string path = "~/Documents/" + filename; 
    this.AjaxFileUpload1.SaveAs(Server.MapPath(path)); 
    pathlist.Add(path); 
    Session["UploadedPath"] = pathlist; 
} 
相關問題