基于http協(xié)議的大文件頁(yè)面斷點(diǎn)續(xù)傳的方法
【專(zhuān)利摘要】本發(fā)明公開(kāi)了一種基于HTTP協(xié)議的大文件頁(yè)面斷點(diǎn)續(xù)傳的方法和系統(tǒng),包括網(wǎng)頁(yè)瀏覽器,文件索引服務(wù)器,文件傳輸存儲(chǔ)服務(wù)器和大文件上傳插件。網(wǎng)頁(yè)瀏覽器,基于HTTP協(xié)議,作為所述大文件上傳插件的載體。文件索引服務(wù)器用于存儲(chǔ)欲上傳文件的傳輸索引值。文件傳輸存儲(chǔ)服務(wù)器,用于存儲(chǔ)欲上傳文件的上傳成功的文件塊信息。大文件上傳插件,用于發(fā)出HTTP請(qǐng)求到所述文件索引服務(wù)器,查詢(xún)傳輸索引值的文件是否存在于文件傳輸存儲(chǔ)服務(wù)器中;從文件傳輸存儲(chǔ)服務(wù)器上獲取上傳成功的文件塊信息;獲取創(chuàng)建上傳線程。本發(fā)明主要解決了瀏覽器上傳大文件性能問(wèn)題,以友好的界面實(shí)時(shí)顯示文件上傳的進(jìn)度和速度,方便快捷的控制多上傳任務(wù)的暫停、取消、恢復(fù)。
【專(zhuān)利說(shuō)明】基于HTTP協(xié)議的大文件頁(yè)面斷點(diǎn)續(xù)傳的方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及一種基于HTTP協(xié)議的大文件頁(yè)面斷點(diǎn)續(xù)傳的方法。
【背景技術(shù)】
[0002]當(dāng)前,互聯(lián)網(wǎng)成為人們生活工作不可或缺的元素。人們通過(guò)互聯(lián)網(wǎng)進(jìn)行數(shù)據(jù)的下載和上傳,現(xiàn)在網(wǎng)絡(luò)上上傳文件所使用的含斷點(diǎn)續(xù)傳技術(shù)的工具主要是基于FTP的,續(xù)傳的步驟包括上傳和下載,但是很多網(wǎng)絡(luò)上通用的防火墻不允許FTP上傳,所以只能使用基于HTTP協(xié)議開(kāi)發(fā)的上傳工具。大多文件下載服務(wù)支持商提供了大文件的下載斷點(diǎn)續(xù)傳功能,如百度、迅雷、螞蟻等等。但是,對(duì)于基于HTTP協(xié)議的大文件上傳,但是基于HTTP協(xié)議的上傳軟件卻是一個(gè)空缺并且具有很多不足,滿(mǎn)足不了社會(huì)的需要。
[0003]HTTP是Web協(xié)議集中的重要協(xié)議,它是從客戶(hù)機(jī)/服務(wù)器模型發(fā)展起來(lái)的。客戶(hù)機(jī)/服務(wù)器是運(yùn)行一對(duì)相互通信的程序,客戶(hù)與服務(wù)器連接時(shí),首先,向服務(wù)器提出請(qǐng)求,服務(wù)器根據(jù)客戶(hù)的請(qǐng)求,完成處理并給出響應(yīng)。因此,開(kāi)發(fā)一種基于HTTP協(xié)議的大文件頁(yè)面斷點(diǎn)續(xù)傳的工具,是廣大普通互聯(lián)網(wǎng)用戶(hù)所期望的。
【發(fā)明內(nèi)容】
[0004]本發(fā)明所要解決的技術(shù)問(wèn)題是提供一種基于HTTP協(xié)議的大文件頁(yè)面斷點(diǎn)續(xù)傳的方法,以克服現(xiàn)有技術(shù)不支持大文件頁(yè)面斷點(diǎn)續(xù)傳的缺陷。
[0005]為解決上述技術(shù)問(wèn)題,本發(fā)明所提出的基于HTTP協(xié)議的大文件頁(yè)面斷點(diǎn)續(xù)傳的方法,涉及文件索引服務(wù)器,文件傳輸存儲(chǔ)服務(wù)器,大文件上傳插件,包括以下步驟:
[0006]開(kāi)啟網(wǎng)頁(yè)瀏覽器,所述大文件上傳插件自啟動(dòng);
[0007]所述大文件上傳插件獲取欲上傳文件的傳輸索引值,發(fā)送查詢(xún)HTTP請(qǐng)求到所述文件索引服務(wù)器,查詢(xún)所述傳輸索引值的文件是否存在于所述文件傳輸存儲(chǔ)服務(wù)器中,
[0008]如果所述傳輸索引值存在,則結(jié)束文件上傳;
[0009]如果所述傳輸索引值不存在,則從所述文件傳輸存儲(chǔ)服務(wù)器上獲取上傳成功的文件塊息;
[0010]所述大文件上傳插件根據(jù)返回的上傳成功的文件塊信息,取到文件的續(xù)傳位置,開(kāi)始對(duì)文件進(jìn)行斷點(diǎn)續(xù)傳處理;
[0011]所述大文件上傳插件創(chuàng)建基于HTTP協(xié)議的上傳線程,對(duì)文件沒(méi)有上傳的部份,進(jìn)行分塊讀取,將相應(yīng)沒(méi)有上傳成功的文件塊上傳至所述文件傳輸存儲(chǔ)服務(wù)器,并調(diào)用JS回調(diào)函數(shù)更新界面上傳任務(wù)的進(jìn)度和速度;
[0012]上傳完最后一個(gè)文件塊時(shí),向所述文件傳輸存儲(chǔ)服務(wù)器發(fā)送文件塊信息合并的HTTP請(qǐng)求,由所述文件傳輸存儲(chǔ)服務(wù)器合并相應(yīng)的文件塊信息,生成完整的文件。
[0013]進(jìn)一步優(yōu)化的方案是,生成完整的文件后,所述文件傳輸存儲(chǔ)服務(wù)器對(duì)生成的完整文件通過(guò)傳輸索引值進(jìn)行文件校驗(yàn);
[0014]如果校驗(yàn)一致,則上傳成功結(jié)束;如果校驗(yàn)不一致,則返回錯(cuò)誤提示用戶(hù)文件檢驗(yàn)失敗,上傳結(jié)束。
[0015]更優(yōu)選的,所述上傳線程將相應(yīng)沒(méi)有上傳成功的文件塊上傳至所述文件傳輸存儲(chǔ)服務(wù)器的同時(shí),調(diào)用JS回調(diào)函數(shù)更新界面上傳任務(wù)的進(jìn)度和速度。
[0016]優(yōu)選的,所述大文件上傳插件為Activex插件或NPAPI插件。
[0017]優(yōu)選的,所述文件傳輸存儲(chǔ)服務(wù)器上獲取上傳成功的文件塊以IM為單位。所述傳輸索引值為MD5值。
[0018]一種基于HTTP協(xié)議的大文件頁(yè)面斷點(diǎn)續(xù)傳的方法的系統(tǒng),包括網(wǎng)頁(yè)瀏覽器,文件索弓I服務(wù)器,文件傳輸存儲(chǔ)服務(wù)器和大文件上傳插件,
[0019]所述網(wǎng)頁(yè)瀏覽器,基于HTTP協(xié)議,用于所述大文件上傳插件的載體,
[0020]所述文件索引服務(wù)器,用于存儲(chǔ)欲上傳文件的傳輸索引值;
[0021]所述文件傳輸存儲(chǔ)服務(wù)器,用于存儲(chǔ)欲上傳文件的上傳成功的文件塊信息;
[0022]所述大文件上傳插件,用于發(fā)出HTTP請(qǐng)求到所述文件索引服務(wù)器,查詢(xún)所述傳輸索引值的文件是否存在于所述文件傳輸存儲(chǔ)服務(wù)器中;從所述文件傳輸存儲(chǔ)服務(wù)器上獲取上傳成功的文件塊信息;獲取創(chuàng)建上傳線程。
[0023]進(jìn)一步的,所述大文件上傳插件,用于上傳完最后一個(gè)文件塊時(shí),向所述文件傳輸存儲(chǔ)服務(wù)器發(fā)送文件塊信息合并的HTTP請(qǐng)求;
[0024]所述文件傳輸存儲(chǔ)服務(wù)器,用于合并相應(yīng)的文件塊信息,生成完整的文件。
[0025]所述文件傳輸存儲(chǔ)服務(wù)器,還用于對(duì)生成的完整文件通過(guò)傳輸索引值進(jìn)行文件校驗(yàn)。
[0026]本發(fā)明通過(guò)對(duì)大文件分塊讀取上傳,使得瀏覽器上傳文件的性能優(yōu)化,克服了以往瀏覽器中大文件上傳不了的缺陷。利用通用的HTTP協(xié)議上傳小文件塊,避免上傳時(shí)對(duì)客戶(hù)端網(wǎng)絡(luò)環(huán)境的苛刻要求,提高了文件傳輸成功率。運(yùn)用斷點(diǎn)續(xù)傳方法,避免再次上傳已傳輸?shù)臄?shù)據(jù)部分,減少了傳輸量,進(jìn)一步節(jié)省了上傳超大文件到文件傳輸存儲(chǔ)服務(wù)器的時(shí)間。
【專(zhuān)利附圖】
【附圖說(shuō)明】
[0027]下面結(jié)合附圖和【具體實(shí)施方式】對(duì)本發(fā)明的技術(shù)方案作進(jìn)一步具體說(shuō)明。
[0028]圖1為本發(fā)明的結(jié)構(gòu)框圖。
[0029]圖2為本發(fā)明的流程圖。
【具體實(shí)施方式】
[0030]如圖1所示,基于HTTP協(xié)議的大文件頁(yè)面斷點(diǎn)續(xù)傳的系統(tǒng),包括網(wǎng)頁(yè)瀏覽器,文件索引服務(wù)器,文件傳輸存儲(chǔ)服務(wù)器和大文件上傳插件,網(wǎng)頁(yè)瀏覽器,基于HTTP協(xié)議,作為所述大文件上傳插件的載體。文件索引服務(wù)器用于存儲(chǔ)欲上傳文件的傳輸索引值。文件傳輸存儲(chǔ)服務(wù)器,用于存儲(chǔ)欲上傳文件的上傳成功的文件塊信息。
[0031]大文件上傳插件,用于發(fā)出HTTP請(qǐng)求到所述文件索引服務(wù)器,查詢(xún)傳輸索引值的文件是否存在于文件傳輸存儲(chǔ)服務(wù)器中;從文件傳輸存儲(chǔ)服務(wù)器上獲取上傳成功的文件塊信息;獲取創(chuàng)建上傳線程。上傳完最后一個(gè)文件塊時(shí),向所述文件傳輸存儲(chǔ)服務(wù)器發(fā)送文件塊信息合并的HTTP請(qǐng)求;
[0032]文件傳輸存儲(chǔ)服務(wù)器,用于合并相應(yīng)的文件塊信息,生成完整的文件。對(duì)生成的完整文件通過(guò)傳輸索引值進(jìn)行文件校驗(yàn)。
[0033]結(jié)合圖2所示,基于HTTP協(xié)議的大文件頁(yè)面斷點(diǎn)續(xù)傳的方法,涉及文件索引服務(wù)器,文件傳輸存儲(chǔ)服務(wù)器,大文件上傳插件,大文件上傳插件為Activex插件或NPAPI插件。包括以下步驟:
[0034]步驟1、開(kāi)啟網(wǎng)頁(yè)瀏覽器,大文件上傳插件自啟動(dòng);大文件上傳插件獲取欲上傳文件的MD5值,發(fā)送HTTP請(qǐng)求到文件索引服務(wù)器,
[0035]步驟2、查詢(xún)MD5值的文件是否存在于文件傳輸存儲(chǔ)服務(wù)器中,
[0036]步驟3、如果所述文件存在,則顯示文件傳輸方式為極速上傳,傳輸結(jié)束;
[0037]步驟4、如果所述文件不存在,則,先從文件傳輸存儲(chǔ)服務(wù)器上獲取上傳成功的文件塊信息;文件傳輸存儲(chǔ)服務(wù)器上獲取上傳成功的文件塊以IM為單位。
[0038]步驟5、大文件上傳插件根據(jù)返回的文件塊信息,取到文件的續(xù)傳位置,開(kāi)始對(duì)文件進(jìn)行斷點(diǎn)續(xù)傳處理。
[0039]步驟6、大文件上傳插件創(chuàng)建上傳線程,對(duì)文件沒(méi)有上傳的部份,進(jìn)行分塊讀取,基于HTTP協(xié)議將相應(yīng)沒(méi)有上傳成功的文件塊上傳至文件傳輸存儲(chǔ)服務(wù)器,并調(diào)用JS回調(diào)函數(shù)更新界面上傳任務(wù)的進(jìn)度和速度;
[0040]步驟7、上傳完最后一個(gè)文件塊時(shí),向所述文件傳輸存儲(chǔ)服務(wù)器發(fā)送HTTP請(qǐng)求,由文件傳輸存儲(chǔ)服務(wù)器合并相應(yīng)的文件塊信息,生成完整的文件,
[0041]步驟8、對(duì)生成的完整文件通過(guò)MD5值進(jìn)行文件校驗(yàn);
[0042]步驟9、如果校驗(yàn)一致,則上傳成功結(jié)束;
[0043]步驟10、如果校驗(yàn)不一致,則返回錯(cuò)誤提示用戶(hù)文件檢驗(yàn)失敗,上傳結(jié)束。
[0044]本發(fā)明通過(guò)對(duì)大文件分塊讀取上傳,提高優(yōu)化了瀏覽器上傳大文件的性能。利用通用的HTTP協(xié)議上傳小文件塊,避免上傳時(shí)對(duì)客戶(hù)端網(wǎng)絡(luò)環(huán)境的苛刻要求,提高了文件傳輸成功率。運(yùn)用斷點(diǎn)續(xù)傳方法,避免再次上傳已傳輸?shù)臄?shù)據(jù)部分,減少了傳輸量,進(jìn)一步節(jié)省了上傳超大文件到文件傳輸存儲(chǔ)服務(wù)器的時(shí)間。
[0045]顯然,本領(lǐng)域的技術(shù)人員應(yīng)該明白,上述的本發(fā)明的各模塊或各步驟可以用通用的計(jì)算裝置來(lái)實(shí)現(xiàn),它們可以集中在單個(gè)的計(jì)算裝置上,或者分布在多個(gè)計(jì)算裝置所組成的網(wǎng)絡(luò)上??蛇x地,它們可以用計(jì)算裝置可執(zhí)行的程序代碼來(lái)實(shí)現(xiàn),從而,可以將它們存儲(chǔ)在存儲(chǔ)裝置中由計(jì)算裝置來(lái)執(zhí)行,或者將它們分別制作成各個(gè)集成電路模塊,或者將它們中的多個(gè)模塊或步驟制作成單個(gè)集成電路模塊來(lái)實(shí)現(xiàn)。因此,本發(fā)明不限制于任何特定的硬件和軟件結(jié)合。
[0046]最后所應(yīng)說(shuō)明的是,以上【具體實(shí)施方式】?jī)H用以說(shuō)明本發(fā)明的技術(shù)方案而非限制,盡管參照較佳實(shí)施例對(duì)本發(fā)明進(jìn)行了詳細(xì)說(shuō)明,本領(lǐng)域的普通技術(shù)人員應(yīng)當(dāng)理解,可以對(duì)本發(fā)明的技術(shù)方案進(jìn)行修改或者等同替換,而不脫離本發(fā)明技術(shù)方案的精神和范圍,其均應(yīng)涵蓋在本發(fā)明的權(quán)利要求范圍當(dāng)中。
【權(quán)利要求】
1.一種基于HTTP協(xié)議的大文件頁(yè)面斷點(diǎn)續(xù)傳的方法,其特征在于,涉及文件索引服務(wù)器,文件傳輸存儲(chǔ)服務(wù)器,大文件上傳插件,包括以下步驟: 開(kāi)啟網(wǎng)頁(yè)瀏覽器,所述大文件上傳插件自啟動(dòng); 所述大文件上傳插件獲取欲上傳文件的傳輸索引值,發(fā)送查詢(xún)HTTP請(qǐng)求到所述文件索引服務(wù)器,查詢(xún)所述傳輸索引值的文件是否存在于所述文件傳輸存儲(chǔ)服務(wù)器中, 如果所述傳輸索引值存在,則結(jié)束文件上傳; 如果所述傳輸索引值不存在,則從所述文件傳輸存儲(chǔ)服務(wù)器上獲取上傳成功的文件塊信息; 所述大文件上傳插件根據(jù)返回的上傳成功的文件塊信息,取到文件的續(xù)傳位置,開(kāi)始對(duì)文件進(jìn)行斷點(diǎn)續(xù)傳處理; 所述大文件上傳插件創(chuàng)建基于HTTP協(xié)議的上傳線程,對(duì)文件沒(méi)有上傳的部份,進(jìn)行分塊讀取,將相應(yīng)沒(méi)有上傳成功的文件塊上傳至所述文件傳輸存儲(chǔ)服務(wù)器,并調(diào)用JS回調(diào)函數(shù)更新界面上傳任務(wù)的進(jìn)度和速度; 上傳完最后一個(gè)文件塊時(shí),向所述文件傳輸存儲(chǔ)服務(wù)器發(fā)送文件塊信息合并的HTTP請(qǐng)求,由所述文件傳輸存儲(chǔ)服務(wù)器合并相應(yīng)的文件塊信息,生成完整的文件。
2.根據(jù)權(quán)利要求1所述的基于HTTP協(xié)議的大文件頁(yè)面斷點(diǎn)續(xù)傳的方法,其特征在于,還包括步驟, 生成完整的文件后,所述文件傳輸存儲(chǔ)服務(wù)器對(duì)生成的完整文件通過(guò)傳輸索引值進(jìn)行文件校驗(yàn); 如果校驗(yàn)一致,則上傳成功結(jié)束;如果校驗(yàn)不一致,則返回錯(cuò)誤提示用戶(hù)文件檢驗(yàn)失敗,上傳結(jié)束。
3.根據(jù)權(quán)利要求2所述的基于HTTP協(xié)議的大文件頁(yè)面斷點(diǎn)續(xù)傳的方法,其特征在于,所述上傳線程將相應(yīng)沒(méi)有上傳成功的文件塊上傳至所述文件傳輸存儲(chǔ)服務(wù)器的同時(shí),調(diào)用JS回調(diào)函數(shù)更新界面上傳任務(wù)的進(jìn)度和速度。
4.根據(jù)權(quán)利要求3所述的基于HTTP協(xié)議的大文件頁(yè)面斷點(diǎn)續(xù)傳的方法,其特征在于,所述大文件上傳插件為Activex插件或NPAPI插件。
5.根據(jù)權(quán)利要求4述的基于HTTP協(xié)議的大文件頁(yè)面斷點(diǎn)續(xù)傳的方法,其特征在于,所述文件傳輸存儲(chǔ)服務(wù)器上獲取上傳成功的文件塊以IM為單位。
6.根據(jù)權(quán)利要求5所述的基于HTTP協(xié)議的大文件頁(yè)面斷點(diǎn)續(xù)傳的方法,其特征在于,所述傳輸索引值為MD5值。
7.—種權(quán)利要求1至6之一所述基于HTTP協(xié)議的大文件頁(yè)面斷點(diǎn)續(xù)傳的方法的系統(tǒng),其特征在于,包括網(wǎng)頁(yè)瀏覽器,文件索引服務(wù)器,文件傳輸存儲(chǔ)服務(wù)器和大文件上傳插件, 所述網(wǎng)頁(yè)瀏覽器,基于HTTP協(xié)議,用于所述大文件上傳插件的載體, 所述文件索引服務(wù)器,用于存儲(chǔ)欲上傳文件的傳輸索引值; 所述文件傳輸存儲(chǔ)服務(wù)器,用于存儲(chǔ)欲上傳文件的上傳成功的文件塊信息; 所述大文件上傳插件,用于發(fā)出HTTP請(qǐng)求到所述文件索引服務(wù)器,查詢(xún)所述傳輸索引值的文件是否存在于所述文件傳輸存儲(chǔ)服務(wù)器中;從所述文件傳輸存儲(chǔ)服務(wù)器上獲取上傳成功的文件塊信息;獲取創(chuàng)建上傳線程。
8.根據(jù)權(quán)利要求7所述基于HTTP協(xié)議的大文件頁(yè)面斷點(diǎn)續(xù)傳的方法的系統(tǒng),其特征在于, 所述大文件上傳插件,用于上傳完最后一個(gè)文件塊時(shí),向所述文件傳輸存儲(chǔ)服務(wù)器發(fā)送文件塊信息合并的HTTP請(qǐng)求; 所述文件傳輸存儲(chǔ)服務(wù)器,用于合并相應(yīng)的文件塊信息,生成完整的文件。
9.根據(jù)權(quán)利要求8所述基于HTTP協(xié)議的大文件頁(yè)面斷點(diǎn)續(xù)傳的方法的系統(tǒng),其特征在于,所述文件傳輸存儲(chǔ)服務(wù)器,還用于對(duì)生成的完整文件通過(guò)傳輸索引值進(jìn)行文件校驗(yàn)。
【文檔編號(hào)】H04L29/06GK104253816SQ201410499818
【公開(kāi)日】2014年12月31日 申請(qǐng)日期:2014年9月25日 優(yōu)先權(quán)日:2014年9月25日
【發(fā)明者】江潮, 徐全憲 申請(qǐng)人:武漢傳神信息技術(shù)有限公司