專利名稱:一種顯示上傳進(jìn)度的方法、系統(tǒng)和裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及本發(fā)明涉及網(wǎng)絡(luò)通信技術(shù),特別涉及一種顯示上傳進(jìn)度的方法、系統(tǒng) 和裝置。
背景技術(shù):
隨著網(wǎng)絡(luò)技術(shù)的飛速發(fā)展,越來越多的用戶會將自己的文件上傳到服務(wù)器供其他 用戶使用。
目前用戶通過Web網(wǎng)頁上傳圖片、視頻、音頻等文件的方式包括
用戶通過客戶端連接到服務(wù)器,并打開上傳頁面;
用戶在上傳頁面選擇需要上傳的文件后點擊上傳,上傳頁面將文件發(fā)送給服務(wù) 器;
服務(wù)器先將接收的文件保存在內(nèi)存中,等到文件接收完成后,再將文件保存到硬 盤中。
由于傳統(tǒng)的頁面對于上傳文件的大小是有限制的,比如在傳統(tǒng)頁面的web. config 配置中,上傳文件大小是4M,這時只允許用戶上傳不大于4M的文件,并且在上傳過程中用 戶也不知道上傳的進(jìn)度。
用戶通常上傳的文件都大于web. config配置中允許上傳的文件的容量,所以現(xiàn) 有的方式中,可以通過修改web. config配置中的上傳的文件的容量,使上傳文件的大小不 受限制。
但是如果用戶要上傳的文件容量比較大,比如IG的文件,由于服務(wù)器需要先將接 收的文件保存在內(nèi)存中,所以要求服務(wù)器的內(nèi)存比較大,如果服務(wù)器的內(nèi)存不夠大,還是無 法上傳文件,即使服務(wù)器的內(nèi)存足夠大,在上傳過程中用戶也不知道上傳的進(jìn)度。
綜上所述,目前通過Web網(wǎng)頁上傳大容量的文件,對于服務(wù)器的配置要求比較高, 并且無法顯示上傳的進(jìn)度。發(fā)明內(nèi)容
本發(fā)明實施例提供一種顯示上傳進(jìn)度的方法、系統(tǒng)和裝置,用以在通過Web網(wǎng)頁 上傳大容量的文件時,降低對服務(wù)器的配置要求,并且在上傳過程中能夠顯示上傳進(jìn)度。
本發(fā)明實施例提供的一種顯示上傳進(jìn)度的方法,該方法包括
客戶端在接收到的超級文本傳送協(xié)議HTTP請求中包含上傳信息時,根據(jù)分塊條 件將需要上傳的文件分成多個數(shù)據(jù)塊,并按照設(shè)定的順序向服務(wù)器發(fā)送所述多個數(shù)據(jù)塊;
所述客戶端在收到來自所述服務(wù)器的順序號后,顯示所述順序號,所述順序號是 所述服務(wù)器根據(jù)接收的數(shù)據(jù)塊確定的,表示所述服務(wù)器成功接收數(shù)據(jù)塊的個數(shù)。。
本發(fā)明實施例提供的一種顯示上傳進(jìn)度的系統(tǒng),該系統(tǒng)包括
客戶端,用于在接收到的超級文本傳送協(xié)議HTTP請求中包含上傳信息時,根據(jù)分 塊條件將需要上傳的文件分成多個數(shù)據(jù)塊,并按照設(shè)定的順序向服務(wù)器發(fā)送所述多個數(shù)據(jù)塊,在收到來自所述服務(wù)器的順序號后,顯示所述順序號;
服務(wù)器,用于在成功接收一個數(shù)據(jù)塊后,確定該數(shù)據(jù)塊對應(yīng)的順序號,并將該順序 號返回給所述客戶端。
本發(fā)明實施例提供的一種客戶端,該客戶端包括
劃分模塊,用于在接收到的超級文本傳送協(xié)議HTTP請求中包含上傳信息時,根據(jù) 分塊條件將需要上傳的文件分成多個數(shù)據(jù)塊;
發(fā)送模塊,用于將所述多個數(shù)據(jù)塊按照設(shè)定的發(fā)送順序,向服務(wù)器發(fā)送;
顯示模塊,用于在收到來自所述服務(wù)器的順序號后,顯示所述順序號,所述順序號 是所述服務(wù)器根據(jù)接收的數(shù)據(jù)塊確定的,表示所述服務(wù)器成功接收數(shù)據(jù)塊的個數(shù)。
本發(fā)明實施例提供的一種服務(wù)器,該服務(wù)器包括
接收模塊,用于將接收的來自客戶端的數(shù)據(jù)塊存儲到指定位置;
處理模塊,用于在數(shù)據(jù)塊全部接收完成后,根據(jù)所述客戶端上傳數(shù)據(jù)塊的方式,將 所述指定位置中的數(shù)據(jù)塊合并成文件;
反饋模塊,用于在所述接收模塊成功接收一個數(shù)據(jù)塊后,確定該數(shù)據(jù)塊對應(yīng)的順 序號,并將該順序號返回給所述客戶端。
本發(fā)明實施例客戶端將需要發(fā)送的文件分成多個數(shù)據(jù)塊,將每個數(shù)據(jù)塊按順序發(fā) 送;服務(wù)器在成功接收一個數(shù)據(jù)塊后,確定該數(shù)據(jù)塊對應(yīng)的順序號,并將該順序號返回給所 述客戶端;客戶端在收到來自服務(wù)器的順序號后,顯示所述順序號。由于將大容量文件分成 多個數(shù)據(jù)塊,分別上傳,從而降低了對于服務(wù)器的配置的要求,同時能夠根據(jù)服務(wù)器接收的 數(shù)據(jù)塊數(shù)量,顯示當(dāng)前上傳的進(jìn)度,從而滿足了用戶上傳文件的需求,提高了用戶體驗以及 文件上傳的可靠性。
圖1為本發(fā)明實施例顯示上傳進(jìn)度的方法流程示意圖
圖2為本發(fā)明實施例顯示上傳進(jìn)度的系統(tǒng)結(jié)構(gòu)示意圖3為本發(fā)明實施例客戶端的結(jié)構(gòu)示意圖4為本發(fā)明實施例服務(wù)器的結(jié)構(gòu)示意圖5為本發(fā)明實施例傳輸文件的方法流程示意圖。
具體實施方式
本發(fā)明實施例客戶端將需要發(fā)送的文件分成多個數(shù)據(jù)塊,將每個數(shù)據(jù)塊按順序發(fā) 送;服務(wù)器在成功接收一個數(shù)據(jù)塊后,確定該數(shù)據(jù)塊對應(yīng)的順序號,并將該順序號返回給客 戶端;客戶端在收到來自服務(wù)器的順序號后,顯示順序號。由于將大容量文件分成多個數(shù)據(jù) 塊,分別上傳,從而降低了對于服務(wù)器的配置的要求,同時能夠根據(jù)服務(wù)器接收的數(shù)據(jù)塊數(shù) 量,顯示當(dāng)前上傳的進(jìn)度,從而滿足了用戶上傳文件的需求。
下面結(jié)合說明書附圖對本發(fā)明實施例作進(jìn)一步詳細(xì)描述。
如圖1所示,本發(fā)明實施例顯示上傳進(jìn)度的方法包括下列步驟
步驟101、客戶端在接收到的HTTP (Hyper Text Transport Protocol,超級文本傳 送協(xié)議)請求中包含上傳信息時,根據(jù)分塊條件將需要上傳的文件分成多個數(shù)據(jù)塊;
步驟102、客戶端按照設(shè)定的順序向服務(wù)器發(fā)送多個數(shù)據(jù)塊。
步驟103、客戶端在收到來自服務(wù)器的順序號后,顯示順序號,其中順序號是服務(wù) 器根據(jù)接收的數(shù)據(jù)塊確定的,表示服務(wù)器成功接收數(shù)據(jù)塊的個數(shù)。
由于客戶端知道一共有多少個數(shù)據(jù)塊,在顯示順序號的同時還可以顯示總的數(shù)據(jù) 塊個數(shù),從而可以讓用戶更直觀了解到上傳的進(jìn)度,進(jìn)一步提高用戶體驗。
在具體實施過程中,用戶進(jìn)入上傳頁面,選中需要上傳的文件并點擊上傳后,會發(fā) 送一個HTTP請求,其中該HTTP請求中包含上傳信息(即multipart/form-data信息)。
分塊條件可以根據(jù)需要進(jìn)行設(shè)定,比如設(shè)定分塊數(shù)量,還可以設(shè)定分成的一個數(shù) 據(jù)塊的容量,等等。
一種較佳的方式是根據(jù)服務(wù)器的內(nèi)存容量設(shè)定分成的數(shù)據(jù)塊的容量,比如服務(wù)器 的內(nèi)存容量為1G,則可以設(shè)定數(shù)據(jù)塊的容量為100M。
客戶端可以向服務(wù)器發(fā)送獲取內(nèi)存容量的命令,服務(wù)器將自身內(nèi)存的容量返回給 客戶端,從而客戶端獲得內(nèi)存容量。當(dāng)然,其他能夠獲得服務(wù)器的方式同樣適用本實施例。
發(fā)送順序同樣可以根據(jù)需要進(jìn)行設(shè)定,比如按照數(shù)據(jù)先后順序,即將文件分成多 個數(shù)據(jù)塊,每個數(shù)據(jù)塊發(fā)送的順序就是對應(yīng)的數(shù)據(jù)在文件中的順序;
還可以為每個數(shù)據(jù)塊分配一個數(shù)字,并將分配的數(shù)據(jù)置于對應(yīng)的數(shù)據(jù)塊中,按照 設(shè)定的數(shù)字順序,將多個數(shù)據(jù)塊以及設(shè)定的數(shù)字順序向服務(wù)器發(fā)送。
假設(shè)有4個數(shù)據(jù)塊,對應(yīng)的數(shù)字為1,2,3和4,數(shù)字順序為4、3、2、1,則在發(fā)送的時 候,按照數(shù)字順序發(fā)送對應(yīng)的數(shù)據(jù)塊,數(shù)字順序可以獨立發(fā)送給服務(wù)器,也可以置于其中一 個數(shù)據(jù)塊中,較佳的方式是置于第一個發(fā)送的數(shù)據(jù)塊中。
客戶端在劃分成數(shù)據(jù)塊后,可以在數(shù)據(jù)塊中添加文件標(biāo)識,這樣可以讓服務(wù)器知 道哪些數(shù)據(jù)塊屬于同一個文件。
客戶端還可以在每個數(shù)據(jù)塊中增加一個狀態(tài)標(biāo)識(比如1,指示還有數(shù)據(jù)塊,0指 示是最后一個數(shù)據(jù)塊),這樣服務(wù)器根據(jù)數(shù)據(jù)塊中的狀態(tài)標(biāo)識可以確定該數(shù)據(jù)塊是否是收 到的最后一個數(shù)據(jù)塊。
其中,步驟102和步驟103之間還可以進(jìn)一步包括
步驟al03、服務(wù)器在成功接收一個數(shù)據(jù)塊后,確定并記錄該數(shù)據(jù)塊對應(yīng)的順序號, 并將該順序號返回給客戶端。
在具體實施過程中,如果客戶端按照文件中的數(shù)據(jù)先后順序,將多個數(shù)據(jù)塊順序 向服務(wù)器發(fā)送,則服務(wù)器在成功接收一個數(shù)據(jù)塊后,根據(jù)該數(shù)據(jù)塊之前成功接收的數(shù)據(jù)塊 的數(shù)量,確定該數(shù)據(jù)塊對應(yīng)的順序號;
如果客戶端為每個數(shù)據(jù)塊分配一個數(shù)字,并將分配的數(shù)字置于對應(yīng)的數(shù)據(jù)塊中, 按照設(shè)定的數(shù)字順序,將多個數(shù)據(jù)塊以及設(shè)定的數(shù)字順序向服務(wù)器發(fā)送,則服務(wù)器在成功 接收一個數(shù)據(jù)塊后,將該數(shù)據(jù)塊中的數(shù)字作為該數(shù)據(jù)塊對應(yīng)的順序號。
服務(wù)器在接收完一個數(shù)據(jù)塊后,可以認(rèn)為成功接收該數(shù)據(jù)塊;也可以在接收完一 個數(shù)據(jù)塊,且將該數(shù)據(jù)塊與前面接收的數(shù)據(jù)塊合并完成后(這種方式只限于收到一個數(shù)據(jù) 塊就進(jìn)行合并),認(rèn)為成功接收該數(shù)據(jù)塊。
其中,如果數(shù)據(jù)塊發(fā)送失敗,則客戶端可以重新發(fā)送,則步驟102之后還可以進(jìn)一 步包括
步驟bl03、客戶端在數(shù)據(jù)塊傳輸失敗后,確定最后收到的順序號對應(yīng)的數(shù)據(jù)塊之 后的數(shù)據(jù)塊;
步驟cl03、客戶端從確定的數(shù)據(jù)塊開始,按照設(shè)定順序向服務(wù)器發(fā)送數(shù)據(jù)塊。
由于客戶端能夠在數(shù)據(jù)塊傳輸失敗后重新傳輸,從而保證了傳輸?shù)目煽啃?,并?不需要從頭開始傳輸,節(jié)省了帶寬資源。
其中,在出現(xiàn)下列情況中的一種時,客戶端可以確定數(shù)據(jù)塊傳輸失敗
在傳輸過程中出現(xiàn)網(wǎng)絡(luò)中斷;
連接超時造成上傳不能繼續(xù);
由于關(guān)閉客戶端導(dǎo)致沒有傳送完成的數(shù)據(jù)。
需要說明的是,本發(fā)明實施例并不局限于上述兩種確定數(shù)據(jù)塊傳輸失敗的方式, 其他能夠確定數(shù)據(jù)塊傳輸失敗的方式都是用本發(fā)明實施例。
如果客戶端確定傳輸失敗,則需要確定最后接收的順序號對應(yīng)的數(shù)據(jù)塊之后的數(shù) 據(jù)塊。因為接收到順序號表示服務(wù)器成功接收對應(yīng)的數(shù)據(jù)塊,所以只需要重新傳輸該數(shù)據(jù) 塊之后的數(shù)據(jù)塊就可以,從而可以實現(xiàn)上傳失敗后的續(xù)傳,節(jié)省了上傳的時間和資源,進(jìn)一 步提高了用戶體驗。
比如一共5個數(shù)據(jù)塊,接收到的順序號對應(yīng)第3個數(shù)據(jù)塊,則客戶端只需要傳輸?shù)?4個和第5個數(shù)據(jù)塊就可以。
其中,步驟102之后還可以進(jìn)一步包括
步驟104、服務(wù)器將接收的來自客戶端的數(shù)據(jù)塊存儲到指定位置。
步驟105、服務(wù)器在數(shù)據(jù)塊全部接收完成后,根據(jù)客戶端上傳數(shù)據(jù)塊的方式,將指 定位置中的數(shù)據(jù)塊合并成文件。
步驟104中,服務(wù)器在收到數(shù)據(jù)塊中含有數(shù)據(jù)信息后,根據(jù)文件標(biāo)識建立一個文 件夾,將收到的含有相同文件標(biāo)識的數(shù)據(jù)塊都放到該文件夾中。
這樣該文件夾就是指定位置。當(dāng)然,還可以根據(jù)文件類型確定指定位置,比如音樂 類和影視類可以分開存儲等等。
步驟105中,如果客戶端按照數(shù)據(jù)先后順序,將多個數(shù)據(jù)塊順序向服務(wù)器發(fā)送,則 服務(wù)器根據(jù)收到的數(shù)據(jù)塊的順序,對數(shù)據(jù)塊進(jìn)行合并(可以全部接收完成后在一起合并; 也可以在收到第二個數(shù)據(jù)塊就和第一個數(shù)據(jù)塊進(jìn)行合并,在收到第三個數(shù)據(jù)塊就和前面的 數(shù)據(jù)塊進(jìn)行合并,依次類推)。
如果客戶端按照設(shè)定的數(shù)字順序,將多個數(shù)據(jù)塊以及設(shè)定的數(shù)字順序向服務(wù)器發(fā) 送,則服務(wù)器根據(jù)收到的數(shù)字順序和置于數(shù)據(jù)塊中的數(shù)字,對收到的數(shù)據(jù)塊進(jìn)行排序,并進(jìn) 行合并處理。
其中,服務(wù)器可以根據(jù)客戶端的通知確定客戶端是按照哪種順序發(fā)送的數(shù)據(jù)塊; 也可以根據(jù)預(yù)先的設(shè)定,即如果服務(wù)器收到的數(shù)據(jù)塊中沒有數(shù)字,則按照數(shù)據(jù)先后順序,進(jìn) 行合并;否則,按照數(shù)字順序進(jìn)行合并。
服務(wù)器有多種方式確定數(shù)據(jù)塊全部接收完成,比如如果服務(wù)器在收到第一個數(shù) 據(jù)塊中含有文件的容量信息,則在每次收到數(shù)據(jù)塊后,都將收到的所有數(shù)據(jù)塊的容量與文 件的容量信息進(jìn)行比較,如果兩個容量相同,則確定數(shù)據(jù)塊全部接收完成;
如果服務(wù)器在收到的數(shù)據(jù)塊中含有狀態(tài)標(biāo)識,則根據(jù)狀態(tài)標(biāo)識確定數(shù)據(jù)塊是否全部接收完成;
服務(wù)器還可以在收到一個數(shù)據(jù)塊后查看客戶端是否還處于斷開狀態(tài),如果客戶端 處于斷開狀態(tài),則確定數(shù)據(jù)塊全部接收完成。
如圖2所示,本發(fā)明實施例顯示上傳進(jìn)度的系統(tǒng)包括客戶端10和服務(wù)器20。
客戶端10,用于在接收到的HTTP請求中包含上傳信息時,根據(jù)分塊條件將需要上 傳的文件分成多個數(shù)據(jù)塊,并按照設(shè)定的順序向服務(wù)器發(fā)送多個數(shù)據(jù)塊,在收到來自服務(wù) 器的順序號后,顯示順序號;
服務(wù)器20,用于在成功接收一個數(shù)據(jù)塊后,確定該數(shù)據(jù)塊對應(yīng)的順序號,并將該順 序號返回給客戶端。
如圖3所示,本發(fā)明實施例客戶端包括劃分模塊100、發(fā)送模塊110和顯示模塊 120。
劃分模塊100,用于在接收到的HTTP請求中包含上傳信息時,根據(jù)分塊條件將需 要上傳的文件分成多個數(shù)據(jù)塊。
發(fā)送模塊110,用于將多個數(shù)據(jù)塊按照設(shè)定的發(fā)送順序,向服務(wù)器發(fā)送。
顯示模塊120,用于在收到來自服務(wù)器的順序號后,顯示順序號,其中順序號是服 務(wù)器根據(jù)接收的數(shù)據(jù)塊確定的,表示服務(wù)器成功接收數(shù)據(jù)塊的個數(shù)。
由于客戶端知道一共有多少個數(shù)據(jù)塊,顯示模塊120在顯示順序號的同時還可以 顯示總的數(shù)據(jù)塊個數(shù),從而可以讓用戶更直觀了解到上傳的進(jìn)度,進(jìn)一步提高用戶體驗。
在具體實施過程中,用戶進(jìn)入上傳頁面,選中需要上傳的文件并點擊上傳后,會發(fā) 送一個HTTP請求,其中該HTTP請求中包含上傳信息(即multipart/form-data信息)。
分塊條件可以根據(jù)需要進(jìn)行設(shè)定,比如設(shè)定分塊數(shù)量,還可以設(shè)定分成的一個數(shù) 據(jù)塊的容量,等等。
一種較佳的方式是根據(jù)服務(wù)器的內(nèi)存容量設(shè)定分成的數(shù)據(jù)塊的容量,比如服務(wù)器 的內(nèi)存容量為1G,則可以設(shè)定數(shù)據(jù)塊的容量為100M。
劃分模塊100可以向服務(wù)器發(fā)送獲取內(nèi)存容量的命令,服務(wù)器將自身內(nèi)存的容量 返回給客戶端,從而獲得服務(wù)器的內(nèi)存容量。當(dāng)然,其他能夠獲得服務(wù)器的方式同樣適用本 實施例。
發(fā)送模塊110的發(fā)送順序同樣可以根據(jù)需要進(jìn)行設(shè)定,比如按照數(shù)據(jù)先后順序, 即將文件分成多個數(shù)據(jù)塊,每個數(shù)據(jù)塊發(fā)送的順序就是對應(yīng)的數(shù)據(jù)在文件中的順序;
發(fā)送模塊110還可以為每個數(shù)據(jù)塊分配一個數(shù)字,并將分配的數(shù)據(jù)置于對應(yīng)的數(shù) 據(jù)塊中,按照設(shè)定的數(shù)字順序,將多個數(shù)據(jù)塊以及設(shè)定的數(shù)字順序向服務(wù)器發(fā)送。
假設(shè)有4個數(shù)據(jù)塊,對應(yīng)的數(shù)字為1,2,3和4,數(shù)字順序為4、3、2、1,則在發(fā)送的時 候,按照數(shù)字順序發(fā)送對應(yīng)的數(shù)據(jù)塊,數(shù)字順序可以獨立發(fā)送給服務(wù)器,也可以置于其中一 個數(shù)據(jù)塊中,較佳的方式是置于第一個發(fā)送的數(shù)據(jù)塊中。
劃分模塊100在劃分成數(shù)據(jù)塊后,可以在數(shù)據(jù)塊中添加文件標(biāo)識,這樣可以讓服 務(wù)器知道哪些數(shù)據(jù)塊屬于同一個文件。
劃分模塊100還可以在每個數(shù)據(jù)塊中增加一個狀態(tài)標(biāo)識(比如1,指示還有數(shù)據(jù) 塊,0指示是最后一個數(shù)據(jù)塊),這樣服務(wù)器根據(jù)數(shù)據(jù)塊中的狀態(tài)標(biāo)識可以確定該數(shù)據(jù)塊是 否是收到的最后一個數(shù)據(jù)塊。
其中,如果數(shù)據(jù)塊發(fā)送失敗,則客戶端可以重新發(fā)送,則發(fā)送模塊110在數(shù)據(jù)塊傳 輸失敗后,確定最后收到的順序號對應(yīng)的數(shù)據(jù)塊之后的數(shù)據(jù)塊,從確定的數(shù)據(jù)塊開始,按照 設(shè)定順序向服務(wù)器發(fā)送數(shù)據(jù)塊。
由于客戶端能夠在數(shù)據(jù)塊傳輸失敗后重新傳輸,從而保證了傳輸?shù)目煽啃裕⑶?不需要從頭開始傳輸,節(jié)省了帶寬資源。
其中,在出現(xiàn)下列情況中的一種時,客戶端可以確定數(shù)據(jù)塊傳輸失敗
在傳輸過程中出現(xiàn)網(wǎng)絡(luò)中斷;
連接超時造成上傳不能繼續(xù);
由于關(guān)閉客戶端導(dǎo)致沒有傳送完成的數(shù)據(jù)。
需要說明的是,本發(fā)明實施例并不局限于上述兩種確定數(shù)據(jù)塊傳輸失敗的方式, 其他能夠確定數(shù)據(jù)塊傳輸失敗的方式都是用本發(fā)明實施例。
如果客戶端確定傳輸失敗,則需要確定最后接收的順序號對應(yīng)的數(shù)據(jù)塊之后的數(shù) 據(jù)塊。因為接收到順序號表示服務(wù)器成功接收對應(yīng)的數(shù)據(jù)塊,所以只需要重新傳輸該數(shù)據(jù) 塊之后的數(shù)據(jù)塊就可以。
比如一共5個數(shù)據(jù)塊,接收到的順序號對應(yīng)第3個數(shù)據(jù)塊,則客戶端只需要傳輸?shù)?4個和第5個數(shù)據(jù)塊就可以。
如圖4所示,本發(fā)明實施例服務(wù)器包括接收模塊200、處理模塊210和反饋模塊 220。
接收模塊200,用于將接收的來自客戶端的數(shù)據(jù)塊存儲到指定位置。
處理模塊210,用于在數(shù)據(jù)塊全部接收完成后,根據(jù)客戶端上傳數(shù)據(jù)塊的方式,將 指定位置中的數(shù)據(jù)塊合并成文件;
反饋模塊220,用于在接收模塊200成功接收一個數(shù)據(jù)塊后,確定該數(shù)據(jù)塊對應(yīng)的 順序號,并將該順序號返回給客戶端。
在具體實施過程中,如果客戶端按照文件中的數(shù)據(jù)先后順序,將多個數(shù)據(jù)塊順序 向服務(wù)器發(fā)送,則接收模塊200在成功接收一個數(shù)據(jù)塊后,反饋模塊220根據(jù)該數(shù)據(jù)塊之前 成功接收的數(shù)據(jù)塊的數(shù)量,確定該數(shù)據(jù)塊對應(yīng)的順序號;
如果客戶端為每個數(shù)據(jù)塊分配一個數(shù)字,并將分配的數(shù)字置于對應(yīng)的數(shù)據(jù)塊中, 按照設(shè)定的數(shù)字順序,將多個數(shù)據(jù)塊以及設(shè)定的數(shù)字順序向服務(wù)器發(fā)送,則接收模塊200 在成功接收一個數(shù)據(jù)塊后,反饋模塊220將該數(shù)據(jù)塊中的數(shù)字作為該數(shù)據(jù)塊對應(yīng)的順序號。
接收模塊200在接收完一個數(shù)據(jù)塊后,反饋模塊220認(rèn)為成功接收該數(shù)據(jù)塊;也可 以在接收模塊200接收完一個數(shù)據(jù)塊,且處理模塊210將該數(shù)據(jù)塊與前面接收的數(shù)據(jù)塊合 并完成后(這種方式只限于收到一個數(shù)據(jù)塊就進(jìn)行合并),接收模塊200認(rèn)為成功接收該數(shù) 據(jù)塊。
接收模塊200在收到數(shù)據(jù)塊中含有數(shù)據(jù)信息后,根據(jù)文件標(biāo)識建立一個文件夾, 將收到的含有相同文件標(biāo)識的數(shù)據(jù)塊都放到該文件夾中。
這樣該文件夾就是指定位置。當(dāng)然,還可以根據(jù)文件類型確定指定位置,比如音樂 類和影視類可以分開存儲等等。
在具體實施過程中,如果客戶端按照數(shù)據(jù)先后順序,將多個數(shù)據(jù)塊順序向服務(wù)器發(fā)送,則處理模塊210根據(jù)收到的數(shù)據(jù)塊的順序,對數(shù)據(jù)塊進(jìn)行合并(可以全部接收完成后 在一起合并;也可以在收到第二個數(shù)據(jù)塊就和第一個數(shù)據(jù)塊進(jìn)行合并,在收到第三個數(shù)據(jù) 塊就和前面的數(shù)據(jù)塊進(jìn)行合并,依次類推)。
如果客戶端按照設(shè)定的數(shù)字順序,將多個數(shù)據(jù)塊以及設(shè)定的數(shù)字順序向服務(wù)器發(fā) 送,則處理模塊210根據(jù)收到的數(shù)字順序和置于數(shù)據(jù)塊中的數(shù)字,對收到的數(shù)據(jù)塊進(jìn)行排 序,并進(jìn)行合并處理。
其中,處理模塊210可以根據(jù)客戶端的通知確定客戶端是按照哪種順序發(fā)送的數(shù) 據(jù)塊;也可以根據(jù)預(yù)先的設(shè)定,即如果收到的數(shù)據(jù)塊中沒有數(shù)字,則處理模塊210按照數(shù)據(jù) 先后順序,進(jìn)行合并;否則,處理模塊210按照數(shù)字順序進(jìn)行合并。
處理模塊210有多種方式確定數(shù)據(jù)塊全部接收完成,比如如果接收模塊200在收 到第一個數(shù)據(jù)塊中含有文件的容量信息,則在接收模塊200每次收到數(shù)據(jù)塊后,處理模塊 210都將收到的所有數(shù)據(jù)塊的容量與文件的容量信息進(jìn)行比較,如果兩個容量相同,則確定 數(shù)據(jù)塊全部接收完成;
如果接收模塊200在收到的數(shù)據(jù)塊中含有狀態(tài)標(biāo)識,則處理模塊210根據(jù)狀態(tài)標(biāo) 識確定數(shù)據(jù)塊是否全部接收完成;
處理模塊210還可以在接收模塊200收到一個數(shù)據(jù)塊后查看客戶端是否還處于斷 開狀態(tài),如果客戶端處于斷開狀態(tài),則確定數(shù)據(jù)塊全部接收完成。
如圖5所示,本發(fā)明實施例傳輸文件的方法包括下列步驟
步驟500、客戶端在接收到的HTTP請求中包含上傳信息時,根據(jù)服務(wù)器的內(nèi)存容 量,將需要上傳的文件分成多個數(shù)據(jù)塊。
步驟501、客戶端將文件標(biāo)識(比如文件名)置于每個數(shù)據(jù)塊中,按照數(shù)據(jù)先后順 序,確定需要發(fā)送的第一個數(shù)據(jù)塊,將文件的容量信息置于第一個數(shù)據(jù)塊中。
步驟502、客戶端按照數(shù)據(jù)先后順序,向服務(wù)器發(fā)送數(shù)據(jù)塊。
步驟503、服務(wù)器收到第一個數(shù)據(jù)塊后,根據(jù)數(shù)據(jù)塊中的文件名,在硬盤中創(chuàng)建一 個相同名稱的文件夾,將收到的數(shù)據(jù)塊存儲到該文件夾中。
步驟504、服務(wù)器在成功接收第一個數(shù)據(jù)塊后,確定并記錄該數(shù)據(jù)塊對應(yīng)的順序 號,并將該順序號返回給客戶端,客戶端在收到來自服務(wù)器的順序號后,顯示順序號。
其中,步驟504可以與步驟505同時執(zhí)行。
步驟505、服務(wù)器查看收到的數(shù)據(jù)塊的容量是否等于收到的文件的容量信息中的 容量,如果是,則執(zhí)行步驟509 ;否則,執(zhí)行步驟506。
步驟506、服務(wù)器繼續(xù)接收下一個數(shù)據(jù)塊,并根據(jù)接收到的數(shù)據(jù)塊中的文件標(biāo)識, 將該數(shù)據(jù)塊與相同名稱的文件夾中的數(shù)據(jù)塊進(jìn)行合并。
步驟507、服務(wù)器在成功接收一個數(shù)據(jù)塊后,確定并記錄該數(shù)據(jù)塊對應(yīng)的順序號, 并將該順序號返回給客戶端,客戶端在收到來自服務(wù)器的順序號后,顯示順序號。
其中,步驟507可以與步驟508同時執(zhí)行。
步驟508、服務(wù)器查看收到的所有數(shù)據(jù)塊的容量是否等于收到的文件的容量信息 中的容量,如果是,則執(zhí)行步驟509 ;否則,返回步驟506。
步驟509、服務(wù)器將合并后的數(shù)據(jù)塊進(jìn)行處理,形成文件并保存。
需要說明的是,客戶端采用其他順序發(fā)送數(shù)據(jù)塊,以及服務(wù)器采用其他方式確定數(shù)據(jù)塊是否全部接收完成,與本實施例的步驟類似,不再贅述。
從上述實施例中可以看出本發(fā)明實施例客戶端在接收到的超級文本傳送協(xié)議 HTTP請求中包含上傳信息時,根據(jù)分塊條件將需要上傳的文件分成多個數(shù)據(jù)塊,并按照設(shè) 定的順序向服務(wù)器發(fā)送多個數(shù)據(jù)塊;客戶端在收到來自服務(wù)器的順序號后,顯示順序號,其 中順序號是服務(wù)器根據(jù)接收的數(shù)據(jù)塊確定的,表示服務(wù)器成功接收數(shù)據(jù)塊的個數(shù)。
由于將大容量文件分成多個數(shù)據(jù)塊,分別上傳,從而降低了對于服務(wù)器的配置的 要求,同時能夠根據(jù)服務(wù)器接收的數(shù)據(jù)塊數(shù)量,顯示當(dāng)前上傳的進(jìn)度,從而滿足了用戶上傳 文件的需求,提高了用戶體驗以及文件上傳的可靠性。
顯然,本領(lǐng)域的技術(shù)人員可以對本發(fā)明進(jìn)行各種改動和變型而不脫離本發(fā)明的精 神和范圍。這樣,倘若本發(fā)明的這些修改和變型屬于本發(fā)明權(quán)利要求及其等同技術(shù)的范圍 之內(nèi),則本發(fā)明也意圖包含這些改動和變型在內(nèi)。
權(quán)利要求
1.一種顯示上傳進(jìn)度的方法,其特征在于,該方法包括客戶端在接收到的超級文本傳送協(xié)議HTTP請求中包含上傳信息時,根據(jù)分塊條件將 需要上傳的文件分成多個數(shù)據(jù)塊,并按照設(shè)定的順序向服務(wù)器發(fā)送所述多個數(shù)據(jù)塊;所述客戶端在收到來自所述服務(wù)器的順序號后,顯示所述順序號,所述順序號是所述 服務(wù)器根據(jù)接收的數(shù)據(jù)塊確定的,表示所述服務(wù)器成功接收數(shù)據(jù)塊的個數(shù)。
2.如權(quán)利要求1所述的方法,其特征在于,該方法還包括所述服務(wù)器在成功接收一個數(shù)據(jù)塊后,確定該數(shù)據(jù)塊對應(yīng)的順序號,并將該順序號返 回給所述客戶端。
3.如權(quán)利要求2所述的方法,其特征在于,所述客戶端按照設(shè)定的順序向服務(wù)器發(fā)送 所述多個數(shù)據(jù)塊包括所述客戶端按照文件中的數(shù)據(jù)先后順序,將所述多個數(shù)據(jù)塊順序向服務(wù)器發(fā)送; 所述服務(wù)器確定該數(shù)據(jù)塊對應(yīng)的順序號包括所述服務(wù)器在成功接收一個數(shù)據(jù)塊后,根據(jù)該數(shù)據(jù)塊之前成功接收的數(shù)據(jù)塊的數(shù)量, 確定該數(shù)據(jù)塊對應(yīng)的順序號。
4.如權(quán)利要求2所述的方法,其特征在于,所述客戶端按照設(shè)定的順序向服務(wù)器發(fā)送 所述多個數(shù)據(jù)塊包括所述客戶端為每個數(shù)據(jù)塊分配一個數(shù)字,并將分配的數(shù)字置于對應(yīng)的數(shù)據(jù)塊中,按照 設(shè)定的數(shù)字順序,將所述多個數(shù)據(jù)塊以及所述設(shè)定的數(shù)字順序向服務(wù)器發(fā)送; 所述服務(wù)器確定該數(shù)據(jù)塊對應(yīng)的順序號包括所述服務(wù)器在成功接收一個數(shù)據(jù)塊后,將該數(shù)據(jù)塊中的數(shù)字作為該數(shù)據(jù)塊對應(yīng)的順序號。
5.如權(quán)利要求1或2所述的方法,其特征在于,該方法還包括所述客戶端在數(shù)據(jù)塊傳輸失敗后,確定最后收到的順序號對應(yīng)的數(shù)據(jù)塊之后的數(shù)據(jù)塊;從確定的數(shù)據(jù)塊開始,按照設(shè)定順序向服務(wù)器發(fā)送數(shù)據(jù)塊。
6.如權(quán)利要求1所述的方法,其特征在于,所述客戶端根據(jù)分塊條件將需要上傳的數(shù) 據(jù)分成多個數(shù)據(jù)塊包括根據(jù)設(shè)定的分塊數(shù)量,將需要上傳的文件分成多個數(shù)據(jù)塊;或 根據(jù)設(shè)定的數(shù)據(jù)塊的容量,將需要上傳的文件分成多個數(shù)據(jù)塊。
7.如權(quán)利要求1所述的方法,其特征在于,該方法包括 服務(wù)器將接收的來自客戶端的數(shù)據(jù)塊存儲到指定位置;所述服務(wù)器在數(shù)據(jù)塊全部接收完成后,根據(jù)所述客戶端上傳數(shù)據(jù)塊的方式,將所述指 定位置中的數(shù)據(jù)塊合并成文件。
8.如權(quán)利要求7所述的方法,其特征在于,所述服務(wù)器確定數(shù)據(jù)塊全部接收完成包括 如果收到的所有數(shù)據(jù)塊的容量等于收到的來自所述客戶端的容量信息,確定數(shù)據(jù)塊全部接收完成;或如果所述客戶端處于斷開狀態(tài),確定數(shù)據(jù)塊全部接收完成;或 如果收到的數(shù)據(jù)塊中的狀態(tài)標(biāo)識為完成表示,確定數(shù)據(jù)塊全部接收完成。
9.如權(quán)利要求7或8所述的方法,其特征在于,如果所述客戶端上傳數(shù)據(jù)塊的方式為按照數(shù)據(jù)的先后順序上傳數(shù)據(jù)塊,所述服務(wù)器將所述指定位置中的數(shù)據(jù)塊合并成文件包括 按照接收的數(shù)據(jù)塊的順序,將收到的數(shù)據(jù)塊合成文件;如果所述客戶端上傳數(shù)據(jù)塊的方式為按照設(shè)定的數(shù)字順序上傳數(shù)據(jù)塊,所述服務(wù)器將 所述指定位置中的數(shù)據(jù)塊合并成文件包括根據(jù)收到的來自所述客戶端的數(shù)字順序和數(shù)據(jù)塊中的數(shù)字,將收到的數(shù)據(jù)塊合成文件。
10.一種顯示上傳進(jìn)度的系統(tǒng),其特征在于,該系統(tǒng)包括客戶端,用于在接收到的超級文本傳送協(xié)議HTTP請求中包含上傳信息時,根據(jù)分塊條 件將需要上傳的文件分成多個數(shù)據(jù)塊,并按照設(shè)定的順序向服務(wù)器發(fā)送所述多個數(shù)據(jù)塊, 在收到來自所述服務(wù)器的順序號后,顯示所述順序號;服務(wù)器,用于在成功接收一個數(shù)據(jù)塊后,確定該數(shù)據(jù)塊對應(yīng)的順序號,并將該順序號返 回給所述客戶端。
11.一種客戶端,其特征在于,該客戶端包括劃分模塊,用于在接收到的超級文本傳送協(xié)議HTTP請求中包含上傳信息時,根據(jù)分塊 條件將需要上傳的文件分成多個數(shù)據(jù)塊;發(fā)送模塊,用于將所述多個數(shù)據(jù)塊按照設(shè)定的發(fā)送順序,向服務(wù)器發(fā)送; 顯示模塊,用于在收到來自所述服務(wù)器的順序號后,顯示所述順序號,所述順序號是所 述服務(wù)器根據(jù)接收的數(shù)據(jù)塊確定的,表示所述服務(wù)器成功接收數(shù)據(jù)塊的個數(shù)。
12.如權(quán)利要求11所述的客戶端,其特征在于,所述發(fā)送模塊還用于在數(shù)據(jù)塊傳輸失敗后,確定最后收到的順序號對應(yīng)的數(shù)據(jù)塊之后的數(shù)據(jù)塊,從確定的 數(shù)據(jù)塊開始,按照設(shè)定順序向服務(wù)器發(fā)送數(shù)據(jù)塊。
13.一種服務(wù)器,其特征在于,該服務(wù)器包括接收模塊,用于將接收的來自客戶端的數(shù)據(jù)塊存儲到指定位置; 處理模塊,用于在數(shù)據(jù)塊全部接收完成后,根據(jù)所述客戶端上傳數(shù)據(jù)塊的方式,將所述 指定位置中的數(shù)據(jù)塊合并成文件;反饋模塊,用于在所述接收模塊成功接收一個數(shù)據(jù)塊后,確定該數(shù)據(jù)塊對應(yīng)的順序號, 并將該順序號返回給所述客戶端。
14.如權(quán)利要求13所述的服務(wù)器,其特征在于,所述反饋模塊用于在成功接收一個數(shù)據(jù)塊后,根據(jù)該數(shù)據(jù)塊之前成功接收的數(shù)據(jù)塊的數(shù)量,確定該數(shù)據(jù) 塊對應(yīng)的順序號,并將該順序號返回給所述客戶端;或在成功接收一個數(shù)據(jù)塊后,將該數(shù)據(jù)塊中的數(shù)字作為該數(shù)據(jù)塊對應(yīng)的順序號,并將該 順序號返回給所述客戶端。
15.如權(quán)利要求14所述的服務(wù)器,其特征在于,所述處理模塊還用于收到的所有數(shù)據(jù)塊的容量等于收到的來自所述客戶端的容量信息,確定數(shù)據(jù)塊全部接 收完成;或所述客戶端處于斷開狀態(tài),確定數(shù)據(jù)塊全部接收完成;或 收到的數(shù)據(jù)塊中的狀態(tài)標(biāo)識為完成標(biāo)識,確定數(shù)據(jù)塊全部接收完成。
全文摘要
本發(fā)明涉及網(wǎng)絡(luò)通信技術(shù),特別涉及一種顯示上傳進(jìn)度的方法、系統(tǒng)和裝置,用以在通過Web網(wǎng)頁上傳大容量的文件時,降低對服務(wù)器的配置要求,并且在上傳過程中能夠顯示上傳進(jìn)度。本發(fā)明實施例的方法包括客戶端在接收到的超級文本傳送協(xié)議HTTP請求中包含上傳信息時,根據(jù)分塊條件將需要上傳的文件分成多個數(shù)據(jù)塊,并按照設(shè)定的順序向服務(wù)器發(fā)送所述多個數(shù)據(jù)塊;所述客戶端在收到來自所述服務(wù)器的順序號后,顯示所述順序號,所述順序號是所述服務(wù)器根據(jù)接收的數(shù)據(jù)塊確定的,表示所述服務(wù)器成功接收數(shù)據(jù)塊的個數(shù)。采用本發(fā)明實施例的方法能夠降低對服務(wù)器配置的要求以及提高用戶體驗。
文檔編號H04L29/08GK102035859SQ20091009335
公開日2011年4月27日 申請日期2009年9月28日 優(yōu)先權(quán)日2009年9月28日
發(fā)明者朱建波, 王永強, 陳志雄 申請人:北京北大方正電子有限公司, 北大方正集團(tuán)有限公司