2009-09-25 98 views
1

我一直在試圖實現ajax風格的文件上傳。我想知道我們必須做什麼來報告上傳進度。我想在我的asp.net網頁中實現這個。如何報告文件上傳進度?

我瞭解我們可以在網頁上上傳文件ajax風格的機制。我一直在搜索如何展示進度條,但我沒有看到適當的解釋。但我已經明白,我們必須從服務器端管理這個方法。 (cf file upload progress

任何想法/代碼將不勝感激。提前Thanx。

回答

1

我不確定你爲什麼要推出自己的產品,因爲有許多使用Ajax,Flash,Silverlight等的上傳控件。但是,這個概念全是關於查詢進度並返回當前狀態。 This guy went through the same process and shows how he built a component using jQuery

顯示進度需要您的客戶端從服務器獲取反饋。這意味着重複查詢您的服務器以取得進展。使用該信息在客戶端上顯示進度。

在您的服務器上,您不僅必須接受入站文件上載,而且還必須迴應彙總進度。如果您在請求中傳遞Content-Length標頭,這很容易;問題在於你不能依靠這些信息。有處理這個問題的策略,但它需要你有接受上傳文件的代碼,因爲你將不得不讀取入站比特。

此時,您還有其他需要關注的事情,它們遠遠超出了進度條的範圍,比如處理Web服務器的進程中的大型文件上傳(進程外更不利於有害到你的服務器。)

由於涉及的複雜性,我鼓勵你找到一個現有的組件,而不是自己創建。

+0

當你的意思是「從你的服務器獲取反饋」你的意思是上傳發生在同一個請求管道上嗎?這可能嗎? – deostroll 2009-09-25 19:14:51

+0

不,這是對服務器的另一個請求 - 可能是Web服務調用 - 返回您需要了解的有關上載進度的信息。服務器負責瞭解您的上傳是在哪個階段進行的 - 並且知道要向您回報哪個上傳文件。 – jro 2009-09-25 19:20:46

+0

要使用什麼策略? – deostroll 2009-09-25 19:44:47