後臺得到一個被封裝好的File對象,然後把file對象包裝成一個輸入流,然後在服務器端文件系統中新建一個文件,將該文件包裝成輸入流,然後不斷從輸入流中讀取字節轉到輸出流中,這個過程是一個持續的過程。
中間使用緩衝區來進行字節數據的中轉,而且每一次中轉的字節數都可以拿到,就想着如果在這個過程中把已經傳輸的寫入到本地文件系統中的字節數記錄下來(傳輸的文件長度),而且文件的總長度也可以獲取。
這個信息保存在session裏面,再在客戶端不斷的發ajax請求從裏面拿到這個值,然後再客戶端將該值展示出來即可。
更確切的說是,我們所執行的數據傳輸其實只是從服務器端的內存系統或臨時文件系統轉到我們規定的一個文件中去。這個並不是真正意義上的進度條。
2、 servlet添加監聽器
在上傳的action中添加進度條監視器,因爲在傳輸的工程中監視器可以獲取上傳的大小信息和文件總大小信息。
將傳輸信息、文件總大小信息保存在session裏面或者是一個工廠裏面。
再讓客戶端不斷的發出請求,來獲取進度信息並進行展示。