本申請涉及計算機(jī)技術(shù)領(lǐng)域,具體涉及互聯(lián)網(wǎng)技術(shù)領(lǐng)域,尤其涉及文件斷點續(xù)傳方法和裝置。
背景技術(shù):
現(xiàn)有技術(shù)中,通過瀏覽器實現(xiàn)的文件上傳通常為流式上傳。若用戶因為關(guān)閉網(wǎng)頁、用戶使用的終端突然斷網(wǎng)或斷電而導(dǎo)致文件上傳非正常中斷,在下一次用戶重新開始同一文件的上傳時,需要從頭開始重新上傳。
這樣一來,將導(dǎo)致文件上傳的傳輸效率低。尤其是當(dāng)用戶期望上傳的文件為視頻、音頻等類型的容量較大的文件時,重新上傳將浪費大量的時間和網(wǎng)絡(luò)流量。
技術(shù)實現(xiàn)要素:
本申請的目的在于提出一種改進(jìn)的文件斷點續(xù)傳方法和裝置,來解決以上背景技術(shù)部分提到的技術(shù)問題。
第一方面,本申請?zhí)峁┝艘环N文件斷點續(xù)傳方法,包括:響應(yīng)于用戶的文件上傳請求,獲取待上傳文件的屬性信息;基于屬性信息確定待上傳文件是否為待續(xù)傳文件,待續(xù)傳文件為包含多個文件塊,且其中一部分文件塊已完成上傳而剩余的文件塊未完成上傳的文件;若待上傳文件不是待續(xù)傳文件,則將待上傳文件切割成復(fù)數(shù)個文件塊,并向服務(wù)器上傳待上傳文件的各文件塊;以及若待上傳文件是待續(xù)傳文件,獲取待續(xù)傳文件的斷點標(biāo)識,并基于斷點標(biāo)識,向服務(wù)器上傳待續(xù)傳文件中未上傳的文件塊。
在一些實施例中,基于屬性信息確定待上傳文件是否為待續(xù)傳文件包括以下任意一項:向服務(wù)器上傳屬性信息,并接收服務(wù)器發(fā)送的 待續(xù)傳文件標(biāo)識;以及查找終端的內(nèi)存中是否存在與待上傳文件對應(yīng)的待續(xù)傳文件標(biāo)識;其中,屬性信息包括待上傳文件的文件名和文件大小。
在一些實施例中,在將待上傳文件切割成復(fù)數(shù)個文件塊之后,方法還包括:向待上傳文件的每個文件塊添加與文件塊一一對應(yīng)的上傳標(biāo)識。
在一些實施例中,向服務(wù)器上傳待上傳文件的各文件塊包括:存儲待上傳文件的當(dāng)前上傳文件塊的上傳標(biāo)識為上傳游標(biāo)的游標(biāo)值;以及基于服務(wù)器發(fā)送的當(dāng)前上傳文件塊上傳成功信息,更新游標(biāo)值為待上傳文件的下一待上傳的文件塊的上傳標(biāo)識。
在一些實施例中,向服務(wù)器上傳待上傳文件的各文件塊還包括:基于服務(wù)器發(fā)送的待上傳文件上傳成功信息,清除待上傳文件的上傳游標(biāo)。
在一些實施例中,獲取待續(xù)傳文件的斷點標(biāo)識包括以下任意一項:向服務(wù)器上傳屬性信息,并接收服務(wù)器發(fā)送的斷點標(biāo)識;以及基于屬性信息查找終端的內(nèi)存中與待續(xù)傳文件對應(yīng)的上傳游標(biāo),并將上傳游標(biāo)作為斷點標(biāo)識。
第二方面,本申請?zhí)峁┝艘环N文件斷點續(xù)傳方法,包括:接收瀏覽器發(fā)送的文件上傳請求,其中,文件上傳請求包括待上傳文件的屬性信息;基于屬性信息,確定待上傳文件是否為待續(xù)傳文件,待續(xù)傳文件為包含多個文件塊,且其中一部分文件塊已完成上傳而剩余的文件塊未完成上傳的文件;若待上傳文件是待續(xù)傳文件,則接收待續(xù)傳文件的未上傳文件塊,并將未上傳文件塊存儲至與待續(xù)傳文件對應(yīng)的存儲區(qū)域;若待上傳文件不是待續(xù)傳文件,則基于屬性信息創(chuàng)建與待上傳文件的一一對應(yīng)的特征碼,并基于待上傳文件的各文件塊與特征碼的匹配,將待上傳文件的各文件塊存儲至預(yù)定存儲區(qū)域。
在一些實施例中,屬性信息包括文件名和文件大?。换趯傩孕畔?,確定待上傳文件是否為待續(xù)傳文件包括:在預(yù)定存儲區(qū)域查找是否存在與文件名對應(yīng)的第一文件;若存在,則確定待上傳文件的屬性信息中的文件大小與第一文件的大小是否一致,若第一文件的大小小 于屬性信息中的文件大小,則待上傳文件為待續(xù)傳文件。
在一些實施例中,則接收待續(xù)傳文件的未上傳文件塊包括:基于第一文件的大小與屬性信息中的文件大小的差值,確定待續(xù)傳文件的當(dāng)前上傳文件塊的上傳標(biāo)識;向終端發(fā)送當(dāng)前上傳文件塊的上傳標(biāo)識;以及接收與上傳標(biāo)識對應(yīng)的當(dāng)前上傳文件塊。
第三方面,本申請?zhí)峁┝艘环N文件斷點續(xù)傳裝置,包括:獲取模塊,配置用于響應(yīng)于用戶的文件上傳請求,獲取待上傳文件的屬性信息;確定模塊,配置用于基于屬性信息確定待上傳文件是否為待續(xù)傳文件,待續(xù)傳文件為包含多個文件塊,且其中一部分文件塊已完成上傳而剩余的文件塊未完成上傳的文件;切割模塊,配置用于若待上傳文件不是待續(xù)傳文件,則將待上傳文件切割成復(fù)數(shù)個文件塊;以及上傳模塊,配置用于向服務(wù)器上傳待上傳文件的各文件塊;獲取模塊進(jìn)一步配置用于:若待上傳文件是待續(xù)傳文件,獲取待續(xù)傳文件的斷點標(biāo)識;上傳模塊進(jìn)一步配置用于:基于斷點標(biāo)識,向服務(wù)器上傳待續(xù)傳文件中未上傳的文件塊。
在一些實施例中,確定模塊進(jìn)一步配置用于基于以下任意一項來確定待上傳文件是否為待續(xù)傳文件:向服務(wù)器上傳屬性信息,并接收服務(wù)器發(fā)送的待續(xù)傳文件標(biāo)識;以及查找終端的內(nèi)存中是否存在與待上傳文件對應(yīng)的待續(xù)傳文件標(biāo)識;其中,屬性信息包括待上傳文件的文件名和文件大小。
在一些實施例中,切割模塊進(jìn)一步配置用于:在將待上傳文件切割成復(fù)數(shù)個文件塊之后,向待上傳文件的每個文件塊添加與文件塊一一對應(yīng)的上傳標(biāo)識。
在一些實施例中,上傳模塊還包括:存儲單元,配置用于存儲待上傳文件的當(dāng)前上傳文件塊的上傳標(biāo)識為上傳游標(biāo)的游標(biāo)值;以及
更新單元,配置用于基于服務(wù)器發(fā)送的當(dāng)前上傳文件塊上傳成功信息,更新游標(biāo)值為待上傳文件的下一待上傳的文件塊的上傳標(biāo)識。
在一些實施例中,上傳模塊還包括:清除單元,配置用于基于服務(wù)器發(fā)送的待上傳文件上傳成功信息,清除待上傳文件的上傳游標(biāo)。
在一些實施例中,獲取模塊基于以下任意一項來獲取待續(xù)傳文件 的斷點標(biāo)識:向服務(wù)器上傳屬性信息,并接收服務(wù)器發(fā)送的斷點標(biāo)識;以及基于屬性信息查找終端的內(nèi)存中與待續(xù)傳文件對應(yīng)的上傳游標(biāo),并將上傳游標(biāo)作為斷點標(biāo)識。
第四方面,本申請?zhí)峁┝艘环N文件斷點續(xù)傳裝置,包括:接收模塊,配置用于接收瀏覽器發(fā)送的文件上傳請求,其中,文件上傳請求包括待上傳文件的屬性信息;確定模塊,配置用于基于屬性信息,確定待上傳文件是否為待續(xù)傳文件,待續(xù)傳文件為包含多個文件塊,且其中一部分文件塊已完成上傳而剩余的文件塊未完成上傳的文件;存儲模塊,配置用于若待上傳文件是待續(xù)傳文件,接收待續(xù)傳文件的未上傳文件塊,并將未上傳文件塊存儲至與待續(xù)傳文件對應(yīng)的存儲區(qū)域;創(chuàng)建模塊,配置用于在待上傳文件不是待續(xù)傳文件時,基于屬性信息創(chuàng)建與待上傳文件的一一對應(yīng)的特征碼,并基于待上傳文件的各文件塊與特征碼的匹配,將待上傳文件的各文件塊存儲至預(yù)定存儲區(qū)域。
在一些實施例中,屬性信息包括文件名和文件大??;確定模塊在基于屬性信息,確定待上傳文件是否為待續(xù)傳文件時,進(jìn)一步配置用于:在預(yù)定存儲區(qū)域查找是否存在與文件名對應(yīng)的第一文件;若存在,則確定待上傳文件的屬性信息中的文件大小與第一文件的大小是否一致,若第一文件的大小小于屬性信息中的文件大小,則待上傳文件為待續(xù)傳文件。
在一些實施例中,存儲模塊進(jìn)一步配置用于:基于第一文件的大小與屬性信息中的文件大小的差值,確定待續(xù)傳文件的當(dāng)前上傳文件塊的上傳標(biāo)識;向終端發(fā)送當(dāng)前上傳文件塊的上傳標(biāo)識;以及接收與上傳標(biāo)識對應(yīng)的當(dāng)前上傳文件塊。
本申請?zhí)峁┑奈募帱c續(xù)傳的方法和裝置,通過文件的屬性信息判斷該文件是否屬于待續(xù)傳文件,若是,則繼續(xù)向服務(wù)器上傳該待續(xù)傳文件的未上傳部分,使得若用戶使用的終端在文件上傳過程中發(fā)生意外而未完成文件所有內(nèi)容的上傳的情況下,可以在終端恢復(fù)正常后繼續(xù)向服務(wù)器上傳文件的未完成部分,而無需再次上傳文件的已完成部分,從而提高了文件上傳的效率,節(jié)省了網(wǎng)絡(luò)流量。
附圖說明
通過閱讀參照以下附圖所作的對非限制性實施例所作的詳細(xì)描述,本申請的其它特征、目的和優(yōu)點將會變得更明顯:
圖1是本申請可以應(yīng)用于其中的示例性系統(tǒng)架構(gòu)圖;
圖2是根據(jù)本申請的文件斷點續(xù)傳方法的一個實施例的示意性流程圖;
圖3是圖2的文件斷點續(xù)傳方法中,向服務(wù)器上傳待上傳文件的各文件塊的示意性流程圖;
圖4是根據(jù)本申請的文件斷點續(xù)傳方法的又一個實施例的示意性流程圖;
圖5是根據(jù)本申請的文件斷點續(xù)傳裝置的一個實施例的結(jié)構(gòu)示意圖;
圖6是根據(jù)本申請的文件斷點續(xù)傳裝置的又一個實施例的結(jié)構(gòu)示意圖;
圖7是適于用來實現(xiàn)本申請實施例的終端設(shè)備或服務(wù)器的計算機(jī)系統(tǒng)的結(jié)構(gòu)示意圖。
具體實施方式
下面結(jié)合附圖和實施例對本申請作進(jìn)一步的詳細(xì)說明??梢岳斫獾氖牵颂幩枋龅木唧w實施例僅僅用于解釋相關(guān)發(fā)明,而非對該發(fā)明的限定。另外還需要說明的是,為了便于描述,附圖中僅示出了與有關(guān)發(fā)明相關(guān)的部分。
需要說明的是,在不沖突的情況下,本申請中的實施例及實施例中的特征可以相互組合。下面將參考附圖并結(jié)合實施例來詳細(xì)說明本申請。
圖1示出了可以應(yīng)用本申請的文件斷點續(xù)傳方法或斷點續(xù)傳裝置的實施例的示例性系統(tǒng)架構(gòu)100。
如圖1所示,系統(tǒng)架構(gòu)100可以包括終端設(shè)備101、102、103,網(wǎng)絡(luò)104和服務(wù)器105。網(wǎng)絡(luò)104用以在終端設(shè)備101、102、103和服務(wù)器105之間提供通信鏈路的介質(zhì)。網(wǎng)絡(luò)104可以包括各種連接類 型,例如有線、無線通信鏈路或者光纖電纜等等。
用戶可以使用終端設(shè)備101、102、103通過網(wǎng)絡(luò)104與服務(wù)器105交互,以接收或發(fā)送消息等。終端設(shè)備101、102、103上可以安裝有各種通訊終端應(yīng)用,例如網(wǎng)頁瀏覽器應(yīng)用、購物類應(yīng)用、搜索類應(yīng)用、云文件服務(wù)類應(yīng)用等。
終端設(shè)備101、102、103可以是具有顯示屏并且支持網(wǎng)頁瀏覽的各種電子設(shè)備,包括但不限于智能手機(jī)、平板電腦、電子書閱讀器、MP3播放器(Moving Picture Experts Group Audio Layer III,動態(tài)影像專家壓縮標(biāo)準(zhǔn)音頻層面3)、MP4(Moving Picture Experts Group Audio Layer IV,動態(tài)影像專家壓縮標(biāo)準(zhǔn)音頻層面4)播放器、膝上型便攜計算機(jī)和臺式計算機(jī)等等。
服務(wù)器105可以是提供各種服務(wù)的服務(wù)器,例如對終端設(shè)備101、102、103上通過接收瀏覽器提出的文件上傳請求,并接收終端通過瀏覽器上傳的文件的云文件服務(wù)器。云文件服務(wù)器可以對接收到的文件上傳請求等數(shù)據(jù)進(jìn)行分析等處理,并將處理結(jié)果(例如請求上傳的文件是否為待續(xù)傳文件)反饋給終端設(shè)備。
需要說明的是,本申請實施例所提供的文件斷點續(xù)傳方法可以由服務(wù)器105執(zhí)行,也可以由終端設(shè)備101、102、103執(zhí)行。相應(yīng)地,文件斷點續(xù)傳裝置可以設(shè)置于服務(wù)器105中,也可以設(shè)置于終端設(shè)備101、102、103中。
應(yīng)該理解,圖1中的終端設(shè)備、網(wǎng)絡(luò)和服務(wù)器的數(shù)目僅僅是示意性的。根據(jù)實現(xiàn)需要,可以具有任意數(shù)目的終端設(shè)備、網(wǎng)絡(luò)和服務(wù)器。
繼續(xù)參考圖2,其示出了本申請的文件斷點續(xù)傳方法的一個實施例的示意性流程圖200。
所述的文件斷點續(xù)傳方法,包括以下步驟:
步驟210,響應(yīng)于用戶的文件上傳請求,獲取待上傳文件的屬性信息。
在一些應(yīng)用場景中,例如,用戶通過終端上的瀏覽器來訪問可向其提供云文件存儲服務(wù)的服務(wù)器。在本實施例中文件斷點續(xù)傳方法運行于其上的電子設(shè)備(例如圖1所示的終端設(shè)備)可以通過有線連接 方式或者無線連接方式與可向其提供云文件存儲服務(wù)的服務(wù)器進(jìn)行數(shù)據(jù)交互,例如,基于用戶在瀏覽器的地址欄輸入的網(wǎng)址來訪問該服務(wù)器,并通過解析由服務(wù)器向瀏覽器發(fā)送的程序代碼,例如,HTML(Hypertext Markup Language超文本鏈接標(biāo)示語言)代碼,來向用戶展現(xiàn)由服務(wù)器提供的與該程序代碼對應(yīng)的內(nèi)容。需要指出的是,上述無線連接方式可以包括但不限于3G/4G連接、WiFi連接、藍(lán)牙連接、WiMAX連接、Zigbee連接、UWB(ultra wideband)連接、以及其他現(xiàn)在已知或?qū)黹_發(fā)的無線連接方式。
用戶可通過對在瀏覽器展現(xiàn)的網(wǎng)頁的某種操作(例如,通過對網(wǎng)頁上提供的用于“文件上傳”按鈕的點擊操作),來發(fā)送文件上傳請求。
在瀏覽器接收到用戶發(fā)送的文件上傳請求后,可以獲取與該文件上傳請求對應(yīng)的待上傳文件的屬性信息。
在一些應(yīng)用場景中,當(dāng)用戶在瀏覽器展現(xiàn)的頁面中進(jìn)行旨在請求上傳文件的操作之后,瀏覽器可以呈現(xiàn)用以使用戶指定待上傳文件存儲位置的界面(例如對話框)。用戶可以通過該界面來從終端的各存儲區(qū)域中選擇其期望上傳的文件。相應(yīng)地,瀏覽器例如可以通過用戶的選擇操作來獲取待上傳文件的屬性信息。在這里,屬性信息例如可以是能夠表征待上傳文件的身份、存儲位置、當(dāng)前狀態(tài)等特點的信息。
步驟220,基于屬性信息確定待上傳文件是否為待續(xù)傳文件,待續(xù)傳文件為包含多個文件塊,且其中一部分文件塊已完成上傳而剩余的文件塊未完成上傳的文件。
由于屬性信息可以用于表征待上傳文件的當(dāng)前狀態(tài),因此,可以利用屬性信息來判斷用戶選擇的待上傳文件是否為待續(xù)傳文件。在這里,待續(xù)傳文件為其中一部分已完成上傳且剩余部分未完成上傳的文件。
在一些應(yīng)用場景中,用戶期望將其使用的終端中的某一視頻文件上傳至服務(wù)器。由于視頻文件通常較大,在網(wǎng)絡(luò)帶寬一定的前提下,上傳文件所需時間與文件大小成正比,因此,視頻文件的上傳時間通常較長。在上傳期間,可能遇到突發(fā)的故障(例如,用戶錯誤地關(guān)閉了瀏覽器,終端與服務(wù)器之間的網(wǎng)絡(luò)連接中斷,或者終端斷電)的幾 率相應(yīng)地較大。若在文件上傳完成之前,發(fā)生了故障,使得本次文件上傳未完成,故障恢復(fù)后,用戶可以通過瀏覽器繼續(xù)上傳該文件,此時,該文件即可認(rèn)為是待續(xù)傳文件。
步驟230,若待上傳文件不是待續(xù)傳文件,則將待上傳文件切割成復(fù)數(shù)個文件塊。并在步驟240中,向服務(wù)器上傳待上傳文件的各文件塊。
在一些可選的實現(xiàn)方式中,可以對待上傳文件切割成BLOB(binary large object,二進(jìn)制大對象)類型的二進(jìn)制文件塊。例如,若待上傳文件為100MB(兆字節(jié)),可以將該待上傳文件切割成為100個文件塊,每個文件塊的大小為1MB。在完成待上傳文件的切割后,便可向服務(wù)器上傳這些文件塊。
步驟250,若待上傳文件是待續(xù)傳文件,獲取待續(xù)傳文件的斷點標(biāo)識。并在步驟260中,向服務(wù)器上傳待續(xù)傳文件中未上傳的文件塊。
如果待上傳文件是如上所述的待續(xù)傳文件,那么,該待續(xù)傳文件中的一部分文件塊已完成了向服務(wù)器的上傳,而剩余部分文件塊尚未完成上傳。為了將未完成上傳的部分繼續(xù)上傳,需要首先確定該文件中哪部分已完成上傳,哪部分未完成上傳,斷點標(biāo)識便可以用于描述這一位置信息。在一些應(yīng)用場景中,可以將待續(xù)傳文件的各文件塊視為一個序列,該序列中,位于斷點標(biāo)識之前的文件塊可以視為該待續(xù)傳文件已完成上傳的文件塊,而剩余的文件塊則可以視為未完成上傳的文件塊。
在一些可選的實現(xiàn)方式中,步驟220的基于屬性信息確定待上傳文件是否為待續(xù)傳文件包括以下任意一項:向服務(wù)器上傳屬性信息,并接收服務(wù)器發(fā)送的待續(xù)傳文件標(biāo)識;以及查找終端的內(nèi)存中是否存在與待上傳文件對應(yīng)的待續(xù)傳文件標(biāo)識;其中,屬性信息包括待上傳文件的文件名和文件大小。
在一些應(yīng)用場景中,可能由于用戶意外地關(guān)閉瀏覽器而導(dǎo)致文件尚未完成上傳。在這些應(yīng)用場景中,終端的內(nèi)存中可能還保留了該文件的屬性信息。在下次用戶請求對同樣的文件進(jìn)行上傳時,便可通過查找終端的內(nèi)存中是否存儲有該文件的屬性信息來判斷該文件是否是 待續(xù)傳文件。
在另一些應(yīng)用場景中,可能由于終端斷電而導(dǎo)致文件尚未完成上傳。在這些應(yīng)用場景中,在終端再次正常啟動之后,終端的內(nèi)存中可能不再存儲有這些文件的屬性信息。此時,可以借助服務(wù)器來確定該文件是否為待續(xù)傳文件。例如,服務(wù)器可以文件的屬性信息中的文件大小和實際接收到的該文件的大小,來確定該文件是否為待續(xù)傳文件。
在一些可選的實現(xiàn)方式中,在將待上傳文件切割成復(fù)數(shù)個文件塊之后,方法還可以包括:
步驟270,向待上傳文件的每個文件塊添加與文件塊一一對應(yīng)的上傳標(biāo)識。
在一些可選的實現(xiàn)方式中,步驟240的向服務(wù)器上傳待上傳文件的各文件塊可以通過如圖3所示的流程300來實現(xiàn)。
具體而言,在步驟310中,存儲待上傳文件的當(dāng)前上傳文件塊的上傳標(biāo)識為上傳游標(biāo)的游標(biāo)值。
接著,在步驟320中,若接收到由服務(wù)器發(fā)送的當(dāng)前上傳文件塊上傳成功信息,則在步驟330中,更新游標(biāo)值為待上傳文件的下一待上傳的文件塊的上傳標(biāo)識。
在一些可選的實現(xiàn)方式中,步驟240的向服務(wù)器上傳待上傳文件的各文件塊還可以進(jìn)一步包括:
步驟340,判斷服務(wù)器發(fā)送的待上傳文件是否上傳成功信息。
以及,步驟350,若待上傳文件上傳成功,則清除待上傳文件的上傳游標(biāo)。例如,在一些應(yīng)用場景中,若待上傳文件未完成上傳時,終端的內(nèi)存中可以存儲有該待上傳文件的上傳游標(biāo),其游標(biāo)值對應(yīng)于待上傳文件中當(dāng)前上傳文件塊的上傳標(biāo)識。在接收到服務(wù)器發(fā)送的上傳成功信息之后,可以將終端內(nèi)存中存儲的該上傳游標(biāo)刪除。
在一些可選的實現(xiàn)方式中,步驟250的獲取待續(xù)傳文件的斷點標(biāo)識可以包括以下任意一項:向服務(wù)器上傳屬性信息,并接收服務(wù)器發(fā)送的斷點標(biāo)識;以及基于屬性信息查找終端的內(nèi)存中與待續(xù)傳文件對應(yīng)的上傳游標(biāo),并將上傳游標(biāo)作為斷點標(biāo)識。
在本實施例的文件斷點續(xù)傳的方法中,若文件為首次上傳(即該 文件不是待續(xù)傳文件),則將該文件劃分為多個文件塊,并且還可以在一些可選的實現(xiàn)方式中,向這些文件塊添加與之一一對應(yīng)的上傳標(biāo)識。而當(dāng)該文件因某種原因未在首次上傳中完成全部文件塊的上傳,并且用戶再次請求該文件的上傳時,該文件便成為了待續(xù)傳文件。因而該待續(xù)傳文件也包括了多個文件塊,且各文件塊也可以具有與之一一對應(yīng)的上傳標(biāo)識。
這樣一來,基于上傳標(biāo)識,便可以獲得待續(xù)傳文件的斷點標(biāo)識,并繼續(xù)向服務(wù)器上傳待續(xù)傳文件中尚未完成上傳的文件塊。
進(jìn)一步參考圖4,其示出了文件斷點續(xù)傳方法的又一個實施例的流程400。本實施例的文件斷點續(xù)傳方法例如可以應(yīng)用于圖1中的服務(wù)器中。
該文件斷點續(xù)傳方法的流程400,包括以下步驟:
步驟410,接收瀏覽器發(fā)送的文件上傳請求,其中,文件上傳請求包括待上傳文件的屬性信息。
步驟420,基于屬性信息,確定待上傳文件是否為待續(xù)傳文件,其中,待續(xù)傳文件包含多個文件塊,且待續(xù)傳文件其中一部分文件塊已完成上傳而剩余文件塊未完成上傳。
步驟430,若待上傳文件是待續(xù)傳文件,則接收待續(xù)傳文件的未上傳文件塊,并在步驟440中,將未上傳文件塊存儲至與待續(xù)傳文件對應(yīng)的存儲區(qū)域。
步驟450,若待上傳文件不是待續(xù)傳文件,則基于屬性信息創(chuàng)建與待上傳文件的一一對應(yīng)的特征碼,并在步驟460中,基于待上傳文件的各文件塊與特征碼的匹配,將待上傳文件的各文件塊存儲至預(yù)定存儲區(qū)域。在這里,特征碼例如可以是與待上傳文件一一對應(yīng),且可用于表征該待上傳文件的身份的標(biāo)識。若服務(wù)器接收到的文件塊與該特征碼匹配,則可以表明該文件塊屬于該待上傳文件,可以將該文件塊存儲至服務(wù)器中的預(yù)定存儲區(qū)域,例如,以該待上傳文件的文件名命名的文件夾中。
在一些可選的實現(xiàn)方式中,屬性信息例如可以包括文件名和文件大小。
在一些可選的實現(xiàn)方式中,步驟420中的基于屬性信息,確定待上傳文件是否為待續(xù)傳文件例如可以包括:在預(yù)定存儲區(qū)域查找是否存在與文件名對應(yīng)的第一文件;若存在,則確定待上傳文件的屬性信息中的文件大小與第一文件的大小是否一致,若第一文件的大小小于屬性信息中的文件大小,則待上傳文件為待續(xù)傳文件。
也即是說,在這些可選的實現(xiàn)方式中,服務(wù)器可以基于屬性信息中的文件名查找是否有與之對應(yīng)的第一文件,若有,則進(jìn)一步比較該第一文件的大小與屬性信息中的文件大小,若第一文件的文件大小小于屬性信息中的文件大小,則可以表明,與當(dāng)前的屬性信息對應(yīng)的文件為待續(xù)傳文件。
在一些可選的實現(xiàn)方式中,步驟430的接收待續(xù)傳文件的未上傳文件塊可以進(jìn)一步包括:基于第一文件的大小與屬性信息中的文件大小的差值,確定待續(xù)傳文件的當(dāng)前上傳文件塊的上傳標(biāo)識;向終端發(fā)送當(dāng)前上傳文件塊的上傳標(biāo)識;以及接收與上傳標(biāo)識對應(yīng)的當(dāng)前上傳文件塊。
本申請的上述實施例提供的方法通過對由于各種原因?qū)е碌奈瓷蟼魍瓿傻奈募M(jìn)行續(xù)傳,節(jié)省了文件上傳的時間,并節(jié)約了網(wǎng)絡(luò)資源。
進(jìn)一步參考圖5,作為對上述各圖所示方法的實現(xiàn),本申請?zhí)峁┝艘环N文件斷點續(xù)傳裝置的一個實施例500,該裝置實施例與圖2所示的方法實施例相對應(yīng),該裝置具體可以應(yīng)用于各種電子設(shè)備中。
如圖5所示,文件斷點續(xù)傳裝置包括獲取模塊510、確定模塊520、切割模塊530以及上傳模塊540。
其中,獲取模塊510可配置用于響應(yīng)于用戶的文件上傳請求,獲取待上傳文件的屬性信息。
確定模塊520可配置用于基于屬性信息確定待上傳文件是否為待續(xù)傳文件,待續(xù)傳文件包括多個文件塊,且待續(xù)傳文件其中一部分文件塊已完成上傳而剩余文件塊未完成上傳。
切割模塊530可配置用于若待上傳文件不是待續(xù)傳文件,則將待上傳文件切割成復(fù)數(shù)個文件塊。
上傳模塊540可配置用于向服務(wù)器上傳待上傳文件的各文件塊。
此外,獲取模塊510還可進(jìn)一步配置用于:若待上傳文件是待續(xù)傳文件,獲取待續(xù)傳文件的斷點標(biāo)識。
上傳模塊540還可進(jìn)一步配置用于:基于斷點標(biāo)識,向服務(wù)器上傳待續(xù)傳文件中未上傳的文件塊。
在一些可選的實現(xiàn)方式中,確定模塊520可以進(jìn)一步配置用于基于以下任意一項來確定待上傳文件是否為待續(xù)傳文件:向服務(wù)器上傳屬性信息,并接收服務(wù)器發(fā)送的待續(xù)傳文件標(biāo)識;以及查找終端的內(nèi)存中是否存在與待上傳文件對應(yīng)的待續(xù)傳文件標(biāo)識;其中,屬性信息包括待上傳文件的文件名和文件大小。
在一些可選的實現(xiàn)方式中,切割模塊530可以進(jìn)一步配置用于:在將待上傳文件切割成復(fù)數(shù)個文件塊之后,向待上傳文件的每個文件塊添加與文件塊一一對應(yīng)的上傳標(biāo)識。
在一些可選的實現(xiàn)方式中,上傳模塊540還可以包括存儲單元541和更新單元542。
其中,存儲單元541可配置用于存儲待上傳文件的當(dāng)前上傳文件塊的上傳標(biāo)識為上傳游標(biāo)的游標(biāo)值。
更新單元542可配置用于基于服務(wù)器發(fā)送的當(dāng)前上傳文件塊上傳成功信息,更新游標(biāo)值為待上傳文件的下一待上傳的文件塊的上傳標(biāo)識。
在一些可選的實現(xiàn)方式中,上傳模塊540還可以包括清除單元543,配置用于基于服務(wù)器發(fā)送的待上傳文件上傳成功信息,清除待上傳文件的上傳游標(biāo)。
在一些可選的實現(xiàn)方式中,獲取模塊510可以基于以下任意一項來獲取待續(xù)傳文件的斷點標(biāo)識:向服務(wù)器上傳屬性信息,并接收服務(wù)器發(fā)送的斷點標(biāo)識;以及基于屬性信息查找終端的內(nèi)存中與待續(xù)傳文件對應(yīng)的上傳游標(biāo),并將上傳游標(biāo)作為斷點標(biāo)識。
進(jìn)一步參考圖6,作為對上述各圖所示方法的實現(xiàn),本申請?zhí)峁┝艘环N文件斷點續(xù)傳裝置的一個實施例600,該裝置實施例與圖3所示的方法實施例相對應(yīng),該裝置具體可以應(yīng)用于各種電子設(shè)備中。
如圖6所示的文件斷點續(xù)傳裝置可以包括接收模塊610、確定模 塊620、存儲模塊630和創(chuàng)建模塊640。
其中,接收模塊610可配置用于接收瀏覽器發(fā)送的文件上傳請求,其中,文件上傳請求包括待上傳文件的屬性信息。
確定模塊620可配置用于基于屬性信息,確定待上傳文件是否為待續(xù)傳文件。其中,待續(xù)傳文件包括多個文件塊,且待續(xù)傳文件其中一部分文件塊已完成上傳而剩余文件塊未完成上傳。
存儲模塊630可配置用于在待上傳文件是待續(xù)傳文件時,接收待續(xù)傳文件的未上傳文件塊,并將未上傳文件塊存儲至與待續(xù)傳文件對應(yīng)的存儲區(qū)域。
創(chuàng)建模塊640可配置用于在待上傳文件不是待續(xù)傳文件時,基于屬性信息創(chuàng)建與待上傳文件的一一對應(yīng)的特征碼,并基于待上傳文件的各文件塊與特征碼的匹配,將待上傳文件的各文件塊存儲至預(yù)定存儲區(qū)域。
在一些可選的實現(xiàn)方式中,屬性信息可包括文件名和文件大小。確定模塊620在基于屬性信息,確定待上傳文件是否為待續(xù)傳文件時,還可進(jìn)一步配置用于:在預(yù)定存儲區(qū)域查找是否存在與文件名對應(yīng)的第一文件;若存在,則確定待上傳文件的屬性信息中的文件大小與第一文件的大小是否一致,若第一文件的大小小于屬性信息中的文件大小,則待上傳文件為待續(xù)傳文件。
在一可選的實現(xiàn)方式中,存儲模塊630可進(jìn)一步配置用于:基于第一文件的大小與屬性信息中的文件大小的差值,確定待續(xù)傳文件的當(dāng)前上傳文件塊的上傳標(biāo)識;向終端發(fā)送當(dāng)前上傳文件塊的上傳標(biāo)識;以及接收與上傳標(biāo)識對應(yīng)的當(dāng)前上傳文件塊。
本領(lǐng)域技術(shù)人員可以理解,上述文件斷點續(xù)傳裝置500和600還包括一些其他公知結(jié)構(gòu),例如處理器、存儲器等,為了不必要地模糊本公開的實施例,這些公知的結(jié)構(gòu)在圖5和圖6中未示出。
下面參考圖7,其示出了適于用來實現(xiàn)本申請實施例的終端設(shè)備或服務(wù)器的計算機(jī)系統(tǒng)700的結(jié)構(gòu)示意圖。
如圖7所示,計算機(jī)系統(tǒng)700包括中央處理單元(CPU)701,其可以根據(jù)存儲在只讀存儲器(ROM)702中的程序或者從存儲部分708 加載到隨機(jī)訪問存儲器(RAM)703中的程序而執(zhí)行各種適當(dāng)?shù)膭幼骱吞幚?。在RAM 703中,還存儲有系統(tǒng)700操作所需的各種程序和數(shù)據(jù)。CPU 701、ROM702以及RAM 703通過總線704彼此相連。輸入/輸出(I/O)接口705也連接至總線704。
以下部件連接至I/O接口705:包括鍵盤、鼠標(biāo)等的輸入部分706;包括諸如陰極射線管(CRT)、液晶顯示器(LCD)等以及揚聲器等的輸出部分707;包括硬盤等的存儲部分708;以及包括諸如LAN卡、調(diào)制解調(diào)器等的網(wǎng)絡(luò)接口卡的通信部分709。通信部分709經(jīng)由諸如因特網(wǎng)的網(wǎng)絡(luò)執(zhí)行通信處理。驅(qū)動器710也根據(jù)需要連接至I/O接口705??刹鹦督橘|(zhì)711,諸如磁盤、光盤、磁光盤、半導(dǎo)體存儲器等等,根據(jù)需要安裝在驅(qū)動器710上,以便于從其上讀出的計算機(jī)程序根據(jù)需要被安裝入存儲部分708。
特別地,根據(jù)本公開的實施例,上文參考流程圖描述的過程可以被實現(xiàn)為計算機(jī)軟件程序。例如,本公開的實施例包括一種計算機(jī)程序產(chǎn)品,其包括有形地包含在機(jī)器可讀介質(zhì)上的計算機(jī)程序,所述計算機(jī)程序包含用于執(zhí)行流程圖所示的方法的程序代碼。在這樣的實施例中,該計算機(jī)程序可以通過通信部分709從網(wǎng)絡(luò)上被下載和安裝,和/或從可拆卸介質(zhì)711被安裝。
附圖中的流程圖和框圖,圖示了按照本申請各種實施例的系統(tǒng)、方法和計算機(jī)程序產(chǎn)品的可能實現(xiàn)的體系架構(gòu)、功能和操作。在這點上,流程圖或框圖中的每個方框可以代表一個模塊、程序段、或代碼的一部分,所述模塊、程序段、或代碼的一部分包含一個或多個用于實現(xiàn)規(guī)定的邏輯功能的可執(zhí)行指令。也應(yīng)當(dāng)注意,在有些作為替換的實現(xiàn)中,方框中所標(biāo)注的功能也可以以不同于附圖中所標(biāo)注的順序發(fā)生。例如,兩個接連地表示的方框?qū)嶋H上可以基本并行地執(zhí)行,它們有時也可以按相反的順序執(zhí)行,這依所涉及的功能而定。也要注意的是,框圖和/或流程圖中的每個方框、以及框圖和/或流程圖中的方框的組合,可以用執(zhí)行規(guī)定的功能或操作的專用的基于硬件的系統(tǒng)來實現(xiàn),或者可以用專用硬件與計算機(jī)指令的組合來實現(xiàn)。
描述于本申請實施例中所涉及到的單元可以通過軟件的方式實 現(xiàn),也可以通過硬件的方式來實現(xiàn)。所描述的單元也可以設(shè)置在處理器中,例如,可以描述為:一種處理器包括獲取模塊、確定模塊、切割模塊以及上傳模塊。其中,這些模塊的名稱在某種情況下并不構(gòu)成對該模塊本身的限定,例如,獲取模塊還可以被描述為“獲取待上傳文件的屬性信息的模塊”。
作為另一方面,本申請還提供了一種非易失性計算機(jī)存儲介質(zhì),該非易失性計算機(jī)存儲介質(zhì)可以是上述實施例中所述裝置中所包含的非易失性計算機(jī)存儲介質(zhì);也可以是單獨存在,未裝配入終端中的非易失性計算機(jī)存儲介質(zhì)。上述非易失性計算機(jī)存儲介質(zhì)存儲有一個或者多個程序,當(dāng)所述一個或者多個程序被一個設(shè)備執(zhí)行時,使得所述設(shè)備:響應(yīng)于用戶的文件上傳請求,獲取待上傳文件的屬性信息;基于屬性信息確定待上傳文件是否為待續(xù)傳文件,待續(xù)傳文件為包含多個文件塊,且其中一部分文件塊已完成上傳而剩余的文件塊未完成上傳的文件;若待上傳文件不是待續(xù)傳文件,則將待上傳文件切割成復(fù)數(shù)個文件塊,并向服務(wù)器上傳待上傳文件的各文件塊;以及若待上傳文件是待續(xù)傳文件,獲取待續(xù)傳文件的斷點標(biāo)識,并基于斷點標(biāo)識,向服務(wù)器上傳待續(xù)傳文件中未上傳的文件塊。
上述非易失性計算機(jī)存儲介質(zhì)存儲有一個或者多個程序,當(dāng)一個或者多個程序被一個設(shè)備執(zhí)行時,還可以使得設(shè)備:接收瀏覽器發(fā)送的文件上傳請求,其中,文件上傳請求包括待上傳文件的屬性信息;基于屬性信息,確定待上傳文件是否為待續(xù)傳文件,待續(xù)傳文件為包含多個文件塊,且其中一部分文件塊已完成上傳而剩余的文件塊未完成上傳的文件;若待上傳文件是待續(xù)傳文件,則接收待續(xù)傳文件的未上傳文件塊,并將未上傳文件塊存儲至與待續(xù)傳文件對應(yīng)的存儲區(qū)域;若待上傳文件不是待續(xù)傳文件,則基于屬性信息創(chuàng)建與待上傳文件的一一對應(yīng)的特征碼,并基于待上傳文件的各文件塊與特征碼的匹配,將待上傳文件的各文件塊存儲至預(yù)定存儲區(qū)域。
以上描述僅為本申請的較佳實施例以及對所運用技術(shù)原理的說明。本領(lǐng)域技術(shù)人員應(yīng)當(dāng)理解,本申請中所涉及的發(fā)明范圍,并不限于上述技術(shù)特征的特定組合而成的技術(shù)方案,同時也應(yīng)涵蓋在不脫離 所述發(fā)明構(gòu)思的情況下,由上述技術(shù)特征或其等同特征進(jìn)行任意組合而形成的其它技術(shù)方案。例如上述特征與本申請中公開的(但不限于)具有類似功能的技術(shù)特征進(jìn)行互相替換而形成的技術(shù)方案。