2012-09-18 24 views
0

我有一個頁面,用戶可以在其中添加附件到電子郵件。當他們點擊開始上傳他們的附件時,我運行一些javascript來設置一個標籤來讀取(例如)'上傳文件4 of 1'當每個文件上傳到服務器時更新瀏覽器

處理上傳的代碼如下。隨着每個文件被保存,我想更新瀏覽器標籤以讀取(例如)'上傳的文件1'。上傳文件2之4'。等

什麼技術可以用來保持瀏覽器通知文件更新?我不需要進度條。

HttpFileCollection hfc = Request.Files; 
for (int i = 0; i < hfc.Count; i++) 
{ 
HttpPostedFile hpf = hfc[i]; 
if (hpf.ContentLength > 0) 
    { 
    hpf.SaveAs(path + ReturnValue.ToString() + "\\" + Path.GetFileName(hpf.FileName)); 
    //This is where I want to update the browser so the user is informed as each file is uploaded 
    } 
} 

我試着用的Response.Write寫<script type="text/javascript">alert('File 1 uploaded')</script>只是爲了看看是否能夠做任何事情。但它不起作用。

我嘗試使用ScriptManager.RegisterStartUpScript調用一個函數,但沒有奏效。

+0

[你有什麼試過](http://whathaveyoutried.com)?你卡在哪裏?你有什麼想法? – Oded

+0

我試着用Response.Write來寫;和Response.Flush();只是爲了看看這是否會做任何事情。但它不起作用。 我嘗試使用ScriptManager.RegisterStartUpScript來調用一個函數,但沒有奏效。 不知道該怎麼說實話,以前從來沒有這樣做過。通常情況下,我在服務器上完成的任何操作後都會將事情寫入瀏覽器。 –

回答

1

正常的做法是使用AJAX輪詢服務器端的Web方法 - 這是一種將返回當前數據的方法。

與此相關的一個問題是服務器可能正在使用會話同步,因此您將需要使用無會話的Web方法。

+0

據我所知,Web方法是一種Web服務的方法 - 抱歉,我不明白。我大概可以弄清楚如何使用AJAX來輪詢一個web方法 - 但是這個web方法會做什麼?它如何知道我上傳的文件的任何內容? –

+0

@MartinSmellworse - 你需要有一些共享的數據,這樣的方法可以拿起並且你的網頁更新。 – Oded