2012-11-19 54 views
0

我有一個AsyncFileUpload控制:如何使用AsyncFileUpload在asp.net中使用c#讀取文件內容?

<asp:AsyncFileUpload ID="venfileupld" runat="server" OnUploadedComplete="ProcessUpload" /> 

OnUploadedComplete事件我寫這段代碼:

protected void ProcessUpload(object sender, AjaxControlToolkit.AsyncFileUploadEventArgs e) 
{ 
    string name = venfileupld.FileName.ToString(); 
    string filepath = "upload_excel/" + name; 
    venfileupld.SaveAs(Server.MapPath(name)); 

} 

現在我要讀上傳文件的內容......我有一個函數對於那個:

public void writetodb(string filename) 
{ 
    string[] str; 
    string vcode = ""; 
    string pswd = ""; 
    string vname = ""; 
    StreamReader sr = new StreamReader(filename); 
    string line=""; 

    while ((line = sr.ReadLine()) != null) 
    { 
     str = line.Split(new char[] { ',' }); 
     vcode = str[0]; 
     pswd = str[1]; 
     vname = str[2]; 
     insertdataintosql(vcode, pswd, vname); 
    } 
    lblmsg4.Text = "Data Inserted Sucessfully"; 
} 

現在我的查詢是,我怎麼能得到上傳的文件傳遞給這個函數?

UPDATE

我已經做到了這一點:

protected void ProcessUpload(object sender, AjaxControlToolkit.AsyncFileUploadEventArgs e) 
{ 
    string name = venfileupld.FileName.ToString(); 
    string filepath = "upload_excel/" + name; 
    venfileupld.SaveAs(Server.MapPath(name)); 
    string filename = System.IO.Path.GetFileName(e.FileName); 
    writetodb(filepath); 

} 

,但得到的錯誤...找不到文件

+0

什麼問題,爲什麼你不能簡單地從'ProcessUpload'調用該方法? –

+0

您可以訪問現在在服務器上的文件。你知道文檔在哪裏,因爲你自己的代碼中有'filepath'。 –

+0

我打電話給我,但我得到錯誤..文件未找到 –

回答

1

我不知道我是否理解了問題,但是不是很容易:

protected void ProcessUpload(object sender, AjaxControlToolkit.AsyncFileUploadEventArgs e) 
{ 
    string name = System.IO.Path.GetFileName(e.filename); 
    string dir = Server.MapPath("upload_excel/"); 
    string path = Path.Combine(dir, name); 
    venfileupld.SaveAs(path); 
    writetodb(path); 
} 

SaveAs將把文件保存在服務器上,以便你可以在之後做到你想要的。

+0

我收到一個錯誤'SaveAs方法被配置爲需要一個根路徑,並且路徑'upload_excel/VENDOR.csv'沒有根.'在線'venfileupld.SaveAs(路徑);' –

+0

@ArindamDas:編輯我的回答。該目錄是'Server.MapPath(「upload_excel /」)',名稱是'System.IO.Path.GetFileName(e.filename)'。 –

+0

謝謝你解決它,謝謝 –

相關問題