亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

文件上傳方法和裝置與流程

文檔序號(hào):11254049閱讀:490來(lái)源:國(guó)知局
文件上傳方法和裝置與流程

本申請(qǐng)涉及互聯(lián)網(wǎng)技術(shù)領(lǐng)域,尤其涉及一種文件上傳方法和裝置。



背景技術(shù):

現(xiàn)有相關(guān)技術(shù)中,通過(guò)網(wǎng)頁(yè)瀏覽器上傳文件,一般是通過(guò)超文本標(biāo)記語(yǔ)言(hypertextmarkuplanguage;以下簡(jiǎn)稱:html)網(wǎng)頁(yè)表單提交文件,上傳到服務(wù)器進(jìn)行存儲(chǔ)。

通過(guò)html網(wǎng)頁(yè)表單提交文件一般采用瀏覽器通過(guò)單通道上傳文件數(shù)據(jù),這種上傳方式不支持?jǐn)帱c(diǎn)續(xù)傳,在傳輸出現(xiàn)網(wǎng)絡(luò)中斷,或者網(wǎng)絡(luò)波動(dòng)的情況下,會(huì)導(dǎo)致上傳過(guò)程中斷而必須重新上傳文件數(shù)據(jù),特別是在上傳大文件的過(guò)程中,更容易發(fā)生中斷的可能,卻不能從中斷處續(xù)傳,從而浪費(fèi)用戶大量的時(shí)間和流量。

另外,滑動(dòng)窗口協(xié)議是傳輸層進(jìn)行流量控制的一種措施,接收方通過(guò)向發(fā)送方報(bào)告接收方自身的窗口大小,從而控制發(fā)送方的發(fā)送速度,達(dá)到防止發(fā)送方發(fā)送速度過(guò)快而導(dǎo)致接收方被淹沒(méi)的目的。但是如果在發(fā)送方和接收方之間存在多個(gè)路由器和速率較慢的鏈路時(shí),這種連接方式會(huì)嚴(yán)重降低請(qǐng)求的吞吐量,這就是單個(gè)傳輸控制協(xié)議(transmissioncontrolprotocol;以下簡(jiǎn)稱:tcp)請(qǐng)求容易出現(xiàn)的滑動(dòng)窗口限制,由于tcp滑動(dòng)窗口限制,瀏覽器通過(guò)單通道上傳文件數(shù)據(jù)時(shí),無(wú)法最大化地利用網(wǎng)絡(luò)帶寬資源,從而導(dǎo)致上傳文件數(shù)據(jù)時(shí)消耗更多時(shí)間。



技術(shù)實(shí)現(xiàn)要素:

為克服相關(guān)技術(shù)中存在的問(wèn)題,本申請(qǐng)?zhí)峁┮环N文件上傳方法和裝置。

為達(dá)到上述目的,本申請(qǐng)的實(shí)施例采用如下技術(shù)方案:

第一方面,本申請(qǐng)實(shí)施例提供一種文件上傳方法,包括:接收服務(wù)器發(fā)送的上傳文件通知,所述上傳文件通知是所述服務(wù)器確定所述服務(wù)器中不存在瀏覽器發(fā)送的哈希值之后發(fā)送的,所述瀏覽器發(fā)送的哈希值是所述瀏覽器對(duì)用戶上傳的文件的二進(jìn)制數(shù)據(jù)進(jìn)行哈希值計(jì)算,獲得的所述文件對(duì)應(yīng)的哈希值;根據(jù)所述上傳文件通知,如果所述文件的大小大于預(yù)定的分片的大小,則根據(jù)所述預(yù)定的分片的大小對(duì)所述文件進(jìn)行分片切割,獲得所述文件的至少兩個(gè)分片;通過(guò)至少兩個(gè)通道并發(fā)上傳所述至少兩個(gè)分片至所述服務(wù)器。

第二方面,本申請(qǐng)實(shí)施例提供一種文件上傳方法,包括:向?yàn)g覽器發(fā)送上傳文件通知,所述文件上傳通知是所述服務(wù)器接收到所述瀏覽器發(fā)送的待上傳的文件對(duì)應(yīng)的哈希值,確定所述服務(wù)器中不存在所述待上傳的文件對(duì)應(yīng)的哈希值之后發(fā)送的;接收所述瀏覽器通過(guò)至少兩個(gè)通道上傳的所述待上傳的文件的至少兩個(gè)分片,所述待上傳的文件的至少兩個(gè)分片是所述瀏覽器確定所述待上傳的文件的大小大于預(yù)定的分片的大小之后,根據(jù)所述預(yù)定的分片的大小對(duì)所述待上傳的文件進(jìn)行分片切割獲得的。

第三方面,本申請(qǐng)實(shí)施例提供一種文件上傳裝置,設(shè)置在瀏覽器中,所述文件上傳裝置包括:接收模塊,用于接收服務(wù)器發(fā)送的上傳文件通知,所述上傳文件通知是所述服務(wù)器確定所述服務(wù)器中不存在瀏覽器發(fā)送的哈希值之后發(fā)送的,所述瀏覽器發(fā)送的哈希值是所述瀏覽器對(duì)用戶上傳的文件的二進(jìn)制數(shù)據(jù)進(jìn)行哈希值計(jì)算,獲得的所述文件對(duì)應(yīng)的哈希值;分片模塊,用于根據(jù)所述接收模塊接收的上傳文件通知,當(dāng)所述文件的大小大于預(yù)定的分片的大小時(shí),根據(jù)所述預(yù)定的分片的大小對(duì)所述文件進(jìn)行分片切割,獲得所述文件的至少兩個(gè)分片;上傳模塊,用于通過(guò)至少兩個(gè)通道并發(fā)上傳所述至少兩個(gè)分片至所述服務(wù)器。

第四方面,本申請(qǐng)實(shí)施例還提供一種文件上傳裝置,包括:設(shè)置于服務(wù)器中,所述文件上傳裝置包括:發(fā)送模塊,用于向?yàn)g覽器發(fā)送上傳文件通知,所述文件上傳通知是所述服務(wù)器接收到所述瀏覽器發(fā)送的待上傳的文件對(duì)應(yīng)的哈希值,確定所述服務(wù)器中不存在所述待上傳的文件對(duì)應(yīng)的哈希值之后發(fā)送的;接收模塊,用于接收所述瀏覽器通過(guò)至少兩個(gè)通道上傳的所述待上傳的文件的至少兩個(gè)分片,所述待上傳的文件的至少兩個(gè)分片是所述瀏覽器確定所述待上傳的文件的大小大于預(yù)定的分片的大小之后,根據(jù)所述預(yù)定的分片的大小對(duì)所述待上傳的文件進(jìn)行分片切割獲得的。

第五方面,本申請(qǐng)實(shí)施例提供一種計(jì)算機(jī)設(shè)備,作為瀏覽器,所述計(jì)算機(jī)設(shè)備包括:一個(gè)或多個(gè)處理器;存儲(chǔ)器,用于存儲(chǔ)一個(gè)或多個(gè)程序;接收器,用于接收服務(wù)器發(fā)送的上傳文件通知,所述上傳文件通知是所述服務(wù)器確定所述服務(wù)器中不存在瀏覽器發(fā)送的哈希值之后發(fā)送的,所述瀏覽器發(fā)送的哈希值是所述瀏覽器對(duì)用戶上傳的文件的二進(jìn)制數(shù)據(jù)進(jìn)行哈希值計(jì)算,獲得的所述文件對(duì)應(yīng)的哈希值;當(dāng)所述一個(gè)或多個(gè)程序被所述一個(gè)或多個(gè)處理器執(zhí)行時(shí),使得所述一個(gè)或多個(gè)處理器根據(jù)所述接收器接收的上傳文件通知,如果所述文件的大小大于預(yù)定的分片的大小,則根據(jù)所述預(yù)定的分片的大小對(duì)所述文件進(jìn)行分片切割,獲得所述文件的至少兩個(gè)分片;發(fā)送器,用于通過(guò)至少兩個(gè)通道并發(fā)上傳所述處理器獲得的至少兩個(gè)分片至所述服務(wù)器。

第六方面,本申請(qǐng)實(shí)施例提供一種計(jì)算機(jī)設(shè)備,作為服務(wù)器,所述計(jì)算機(jī)設(shè)備包括:一個(gè)或多個(gè)處理器;存儲(chǔ)器,用于存儲(chǔ)一個(gè)或多個(gè)程序;發(fā)送器,用于向?yàn)g覽器發(fā)送上傳文件通知,所述文件上傳通知是所述服務(wù)器接收到所述瀏覽器發(fā)送的待上傳的文件對(duì)應(yīng)的哈希值,確定所述服務(wù)器中不存在所述待上傳的文件對(duì)應(yīng)的哈希值之后發(fā)送的;接收器,用于接收瀏覽器通過(guò)至少兩個(gè)通道上傳的所述待上傳的文件的至少兩個(gè)分片,所述待上傳的文件的至少兩個(gè)分片是所述瀏覽器確定所述待上傳的文件的大小大于預(yù)定的分片的大小之后,根據(jù)所述預(yù)定的分片的大小對(duì)所述待上傳的文件進(jìn)行分片切割獲得的。

第七方面,本申請(qǐng)實(shí)施例提供一種非臨時(shí)性計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),當(dāng)所述存儲(chǔ)介質(zhì)中的計(jì)算機(jī)可執(zhí)行指令在由計(jì)算機(jī)處理器執(zhí)行時(shí),用于執(zhí)行第一方面提供的文件上傳方法。

第八方面,本申請(qǐng)實(shí)施例提供一種非臨時(shí)性計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),當(dāng)所述存儲(chǔ)介質(zhì)中的計(jì)算機(jī)可執(zhí)行指令在由計(jì)算機(jī)處理器執(zhí)行時(shí),用于執(zhí)行第二方面提供的文件上傳方法。

本申請(qǐng)實(shí)施例提供的技術(shù)方案可以包括以下有益效果:瀏覽器接收服務(wù)器發(fā)送的上傳文件通知之后,根據(jù)上述上傳文件通知,如果上述文件的大小大于預(yù)定的分片的大小,則根據(jù)預(yù)定的分片的大小對(duì)上述文件進(jìn)行分片切割,獲得上述文件的至少兩個(gè)分片,通過(guò)至少兩個(gè)通道并發(fā)上傳上述至少兩個(gè)分片至上述服務(wù)器,從而可以實(shí)現(xiàn)瀏覽器通過(guò)至少兩個(gè)通道上傳文件至服務(wù)器,可以最大限度地利用網(wǎng)絡(luò)帶寬資源,提高了文件上傳速度;另外,上述上傳文件通知是服務(wù)器確定上述服務(wù)器中不存在瀏覽器發(fā)送的哈希值之后發(fā)送的,上述瀏覽器發(fā)送的哈希值是瀏覽器對(duì)用戶上傳的文件的二進(jìn)制數(shù)據(jù)進(jìn)行哈希值計(jì)算,獲得的上述文件對(duì)應(yīng)的哈希值,因此服務(wù)器可以實(shí)現(xiàn)通過(guò)上述文件對(duì)應(yīng)的哈希值離散存儲(chǔ)瀏覽器上傳的文件,從而可以實(shí)現(xiàn)文件的斷點(diǎn)續(xù)傳和秒傳功能。

應(yīng)當(dāng)理解的是,以上的一般描述和后文的細(xì)節(jié)描述僅是示例性和解釋性的,并不能限制本申請(qǐng)。

附圖說(shuō)明

此處的附圖被并入說(shuō)明書中并構(gòu)成本說(shuō)明書的一部分,示出了符合本申請(qǐng)的實(shí)施例,并與說(shuō)明書一起用于解釋本申請(qǐng)的原理。

圖1為本申請(qǐng)文件上傳方法一個(gè)實(shí)施例的流程圖;

圖2為本申請(qǐng)文件上傳方法中哈希值計(jì)算進(jìn)度界面一個(gè)實(shí)施例的示意圖;

圖3為本申請(qǐng)文件上傳方法另一個(gè)實(shí)施例的流程圖;

圖4為本申請(qǐng)文件上傳方法再一個(gè)實(shí)施例的流程圖;

圖5為本申請(qǐng)文件上傳方法再一個(gè)實(shí)施例的流程圖;

圖6為本申請(qǐng)文件上傳方法再一個(gè)實(shí)施例的流程圖;

圖7為本申請(qǐng)文件上傳方法再一個(gè)實(shí)施例的流程圖;

圖8為本申請(qǐng)文件上傳方法再一個(gè)實(shí)施例的流程圖;

圖9為本申請(qǐng)文件上傳裝置一個(gè)實(shí)施例的結(jié)構(gòu)示意圖;

圖10為本申請(qǐng)文件上傳裝置另一個(gè)實(shí)施例的結(jié)構(gòu)示意圖;

圖11為本申請(qǐng)文件上傳裝置再一個(gè)實(shí)施例的結(jié)構(gòu)示意圖;

圖12為本申請(qǐng)文件上傳裝置再一個(gè)實(shí)施例的結(jié)構(gòu)示意圖;

圖13為本申請(qǐng)計(jì)算機(jī)設(shè)備一個(gè)實(shí)施例的結(jié)構(gòu)示意圖;

圖14為本申請(qǐng)計(jì)算機(jī)設(shè)備另一個(gè)實(shí)施例的結(jié)構(gòu)示意圖。

通過(guò)上述附圖,已示出本申請(qǐng)明確的實(shí)施例,后文中將有更詳細(xì)的描述。這些附圖和文字描述并不是為了通過(guò)任何方式限制本申請(qǐng)構(gòu)思的范圍,而是通過(guò)參考特定實(shí)施例為本領(lǐng)域技術(shù)人員說(shuō)明本申請(qǐng)的概念。

具體實(shí)施方式

這里將詳細(xì)地對(duì)示例性實(shí)施例進(jìn)行說(shuō)明,其示例表示在附圖中。下面的描述涉及附圖時(shí),除非另有表示,不同附圖中的相同數(shù)字表示相同或相似的要素。以下示例性實(shí)施例中所描述的實(shí)施方式并不代表與本申請(qǐng)相一致的所有實(shí)施方式。相反,它們僅是與如所附權(quán)利要求書中所詳述的、本申請(qǐng)的一些方面相一致的裝置和方法的例子。

圖1為本申請(qǐng)文件上傳方法一個(gè)實(shí)施例的流程圖,本實(shí)施例中的文件上傳方法可以由瀏覽器實(shí)現(xiàn),如圖1所示,上述文件上傳方法可以包括:

步驟101,接收服務(wù)器發(fā)送的上傳文件通知,上述上傳文件通知是上述服務(wù)器確定上述服務(wù)器中不存在瀏覽器發(fā)送的哈希值之后發(fā)送的,上述瀏覽器發(fā)送的哈希值是上述瀏覽器對(duì)用戶上傳的文件的二進(jìn)制數(shù)據(jù)進(jìn)行哈希值計(jì)算,獲得的上述文件對(duì)應(yīng)的哈希值。

本實(shí)施例中,在用戶通過(guò)瀏覽器選擇待上傳的文件,并確認(rèn)上傳文件之后,瀏覽器可以獲得用戶上傳的文件,進(jìn)而可以獲得用戶上傳的文件的二進(jìn)制數(shù)據(jù)。

在獲得用戶上傳的文件的二進(jìn)制數(shù)據(jù)之后,瀏覽器可以對(duì)用戶上傳的文件的二進(jìn)制數(shù)據(jù)進(jìn)行哈希值計(jì)算,獲得上述文件對(duì)應(yīng)的哈希值。

具體地,瀏覽器可以采用安全哈希算法(securehashalgorithm;以下簡(jiǎn)稱:sha)對(duì)用戶上傳的文件的二進(jìn)制數(shù)據(jù)進(jìn)行哈希值計(jì)算,當(dāng)然本實(shí)施例并不僅限于此,瀏覽器也可以采用其他的哈希算法對(duì)用戶上傳的文件的二進(jìn)制數(shù)據(jù)進(jìn)行哈希值計(jì)算,本實(shí)施例對(duì)瀏覽器采用的哈希算法不作限定。

在對(duì)用戶上傳的文件的二進(jìn)制數(shù)據(jù)進(jìn)行哈希值計(jì)算的過(guò)程中,瀏覽器還可以在用戶界面展示哈希值的計(jì)算進(jìn)度,如圖2所示,圖2為本申請(qǐng)文件上傳方法中哈希值計(jì)算進(jìn)度界面一個(gè)實(shí)施例的示意圖。參見(jiàn)圖2,用戶上傳的文件為“ioa3.0.2015.874beta.exe”,哈希值計(jì)算進(jìn)度為“15%”。

本實(shí)施例中,瀏覽器計(jì)算獲得上述文件對(duì)應(yīng)的哈希值之后,將上述文件對(duì)應(yīng)的哈希值發(fā)送給服務(wù)器,以請(qǐng)求上傳文件。

另外,在將上述文件對(duì)應(yīng)的哈希值發(fā)送給服務(wù)器時(shí),瀏覽器還可以將上述文件的相關(guān)信息,例如上述文件的文件名稱和上述文件的大小等信息一并發(fā)送給上述服務(wù)器。

本實(shí)施例中,瀏覽器向上述服務(wù)器發(fā)送上述文件對(duì)應(yīng)的哈希值之后,服務(wù)器先判斷上述服務(wù)器中是否存在上述文件對(duì)應(yīng)的哈希值,如果不存在,則上述服務(wù)器可以確定上述服務(wù)器中不存在瀏覽器想要上傳的文件,于是上述服務(wù)器向上述瀏覽器發(fā)送上傳文件通知,通知上述瀏覽器上傳文件,也就是說(shuō),服務(wù)器可以實(shí)現(xiàn)通過(guò)上述文件對(duì)應(yīng)的哈希值離散存儲(chǔ)瀏覽器上傳的文件,從而可以實(shí)現(xiàn)文件的斷點(diǎn)續(xù)傳和秒傳功能。

步驟102,根據(jù)上述上傳文件通知,如果上述文件的大小大于預(yù)定的分片的大小,則根據(jù)上述預(yù)定的分片的大小對(duì)上述文件進(jìn)行分片切割,獲得上述文件的至少兩個(gè)分片。

具體地,瀏覽器接收到上述上傳文件通知之后,確定需要上傳上述文件,于是瀏覽器先對(duì)上述文件進(jìn)行分片切割,這時(shí)需要先判斷一下上述文件的大小與預(yù)定的分片的大小,如果上述文件的大小大于預(yù)定的分片的大小,則需要對(duì)上述文件進(jìn)行文件切割;而如果上述文件的大小小于或等于預(yù)定的分片的大小,則不需要對(duì)上述文件進(jìn)行文件切割。

其中,上述預(yù)定的分片的大小可以在具體實(shí)現(xiàn)時(shí),根據(jù)業(yè)務(wù)需求和/或系統(tǒng)性能等自行設(shè)定,本實(shí)施例對(duì)上述預(yù)定的分片的大小不作限定,舉例來(lái)說(shuō),上述預(yù)定的分片的大小可以為512kb。

本實(shí)施例中,確定需要對(duì)上述文件進(jìn)行文件切割之后,瀏覽器就按照上述預(yù)定的分片的大小將上述文件切割為至少兩個(gè)分片。

步驟103,通過(guò)至少兩個(gè)通道并發(fā)上傳上述至少兩個(gè)分片至上述服務(wù)器。

本實(shí)施例中,瀏覽器接收到上述上傳文件通知之后,瀏覽器可以通過(guò)至少兩個(gè)通道將上述文件切割獲得的至少兩個(gè)分片上傳至上述服務(wù)器,從而可以實(shí)現(xiàn)瀏覽器通過(guò)至少兩個(gè)通道上傳文件至服務(wù)器,雖然在每個(gè)通道上傳文件時(shí)仍會(huì)受到滑動(dòng)窗口限制,但由于并發(fā)的上傳請(qǐng)求一起進(jìn)行,可以最大限度地利用網(wǎng)絡(luò)帶寬資源,進(jìn)而可以提高文件上傳速度。

本實(shí)施例中,如果上述文件的大小小于或等于預(yù)定的分片的大小,則不需要對(duì)上述文件進(jìn)行文件切割,這時(shí),瀏覽器需要先請(qǐng)求上述服務(wù)器為上述文件分配存儲(chǔ)空間,在接收到上述服務(wù)器發(fā)送的存儲(chǔ)空間分配完畢的響應(yīng)之后,通過(guò)單通道將上述文件上傳至服務(wù)器。

另外,本申請(qǐng)圖1所示實(shí)施例中,瀏覽器還可以接收服務(wù)器發(fā)送的文件上傳完畢通知,上述文件上傳完畢通知是上述服務(wù)器確定上述服務(wù)器中存在瀏覽器發(fā)送的哈希值,上述瀏覽器發(fā)送的哈希值是上述瀏覽器對(duì)用戶上傳的文件的二進(jìn)制數(shù)據(jù)進(jìn)行哈希值計(jì)算,獲得的上述文件對(duì)應(yīng)的哈希值,并且建立上述用戶的標(biāo)識(shí)與上述文件之間的關(guān)聯(lián)索引之后發(fā)送的。

具體地,本實(shí)施例中,瀏覽器向上述服務(wù)器發(fā)送上述文件對(duì)應(yīng)的哈希值之后,服務(wù)器先判斷上述服務(wù)器中是否存在上述文件對(duì)應(yīng)的哈希值,如果存在,則上述服務(wù)器可以確定上述服務(wù)器中存在瀏覽器想要上傳的文件,于是上述服務(wù)器建立向?yàn)g覽器上傳上述文件的用戶的標(biāo)識(shí)與上述文件之間的關(guān)聯(lián)索引,然后向上述瀏覽器發(fā)送上傳完畢通知,這種情形下,上述瀏覽器無(wú)需向服務(wù)器上傳上述文件。也就是說(shuō),服務(wù)器可以實(shí)現(xiàn)通過(guò)上述文件對(duì)應(yīng)的哈希值離散存儲(chǔ)瀏覽器上傳的文件,從而實(shí)現(xiàn)了文件的秒傳功能。

圖3為本申請(qǐng)文件上傳方法另一個(gè)實(shí)施例的流程圖,本實(shí)施例中的文件上傳方法可以由瀏覽器實(shí)現(xiàn),如圖3所示,上述文件上傳方法可以包括:

步驟301~步驟302,同步驟101~步驟102,在此不再贅述。

步驟303,請(qǐng)求上述服務(wù)器為上述至少兩個(gè)分片分配存儲(chǔ)空間。

本實(shí)施例中,瀏覽器將上述文件切割為至少兩個(gè)分片之后,會(huì)向上述服務(wù)器發(fā)送請(qǐng)求,以請(qǐng)求上述服務(wù)器為上述至少兩個(gè)分片分配存儲(chǔ)空間,并在發(fā)送的請(qǐng)求中攜帶上述文件切割成的分片的數(shù)量。

步驟304,接收上述服務(wù)器發(fā)送的存儲(chǔ)空間分配完畢的響應(yīng),并獲得上述服務(wù)器通知的可用于上傳的通道數(shù)。

其中,上述通道數(shù)是上述服務(wù)器根據(jù)上述文件的分片的數(shù)量確定的,上述通道數(shù)大于或等于2;舉例來(lái)說(shuō),上述通道數(shù)可以為4。

具體地,瀏覽器請(qǐng)求服務(wù)器為上述至少兩個(gè)分片分配存儲(chǔ)空間之后,服務(wù)器會(huì)根據(jù)瀏覽器發(fā)送的請(qǐng)求中攜帶的分片的數(shù)量為上述至少兩個(gè)分片分配存儲(chǔ)空間,并確定可用于上傳的通道數(shù),然后,服務(wù)器會(huì)向?yàn)g覽器發(fā)送存儲(chǔ)空間分配完畢的響應(yīng),并告知瀏覽器可用于上傳的通道數(shù),這樣瀏覽器可以接收到上述服務(wù)器發(fā)送的存儲(chǔ)空間分配完畢的響應(yīng),并獲得上述服務(wù)器通知的可用于上傳的通道數(shù)。

步驟305,通過(guò)至少兩個(gè)通道并發(fā)上傳上述至少兩個(gè)分片至上述服務(wù)器。

其中,上述至少兩個(gè)通道所包含的通道的數(shù)量為上述服務(wù)器通知的可用于上傳的通道數(shù)。

本實(shí)施例中,獲得上述服務(wù)器通知的可用于上傳的通道數(shù)之后,瀏覽器就可以通過(guò)上述通道數(shù)所指示數(shù)量的通道并發(fā)上傳上述至少兩個(gè)分片至服務(wù)器,從而實(shí)現(xiàn)了將文件上傳的過(guò)程在瀏覽器端使用多個(gè)通道并發(fā)進(jìn)行,雖然在每個(gè)通道上傳文件時(shí)仍會(huì)受到滑動(dòng)窗口限制,但由于并發(fā)的上傳請(qǐng)求一起進(jìn)行,可以最大限度地利用網(wǎng)絡(luò)帶寬資源,進(jìn)而可以提高文件上傳速度。

圖4為本申請(qǐng)文件上傳方法再一個(gè)實(shí)施例的流程圖,本實(shí)施例中的文件上傳方法可以由瀏覽器實(shí)現(xiàn),如圖4所示,本申請(qǐng)圖1所示實(shí)施例中,步驟103可以包括:

步驟401,將上述至少兩個(gè)分片放入待上傳分片隊(duì)列。

步驟402,通過(guò)上述至少兩個(gè)通道將上述待上傳分片隊(duì)列中的分片并發(fā)上傳至上述服務(wù)器。

進(jìn)一步地,在通過(guò)至少兩個(gè)通道將上述待上傳分片隊(duì)列中的分片并發(fā)上傳至上述服務(wù)器的過(guò)程中,如果出現(xiàn)上傳失敗的分片,則將上述上傳失敗的分片重新放入上述待上傳分片隊(duì)列中等待重新上傳。

也就是說(shuō),在具體實(shí)現(xiàn)時(shí),瀏覽器在通過(guò)上述至少兩個(gè)通道并發(fā)上傳上述至少兩個(gè)分片至服務(wù)器時(shí),是先將上述至少兩個(gè)分片放入待上傳分片隊(duì)列,然后通過(guò)上述至少兩個(gè)通道將上述待上傳分片隊(duì)列中的分片并發(fā)上傳至上述服務(wù)器,在這過(guò)程中,如果出現(xiàn)上傳失敗的分片,則將上述上傳失敗的分片重新放入上述待上傳分片隊(duì)列中等待重新上傳,這就實(shí)現(xiàn)了斷點(diǎn)續(xù)傳功能,極大減少了由于網(wǎng)絡(luò)環(huán)境波動(dòng)等問(wèn)題造成上傳失敗后,用戶重試上傳文件的時(shí)間成本,提高了用戶體驗(yàn)。

上述文件上傳方法可以在瀏覽器網(wǎng)頁(yè)中實(shí)現(xiàn)多通道上傳功能,由于目前的操作系統(tǒng)都帶有網(wǎng)頁(yè)瀏覽器,相比傳統(tǒng)的多通道上傳需要依賴于安裝第三方操作軟件而言,具有更強(qiáng)的普遍適用性和便利性。

圖5為本申請(qǐng)文件上傳方法再一個(gè)實(shí)施例的流程圖,本實(shí)施例中的文件上傳方法可以由服務(wù)器實(shí)現(xiàn),如圖5所示,上述文件上傳方法可以包括:

步驟501,向?yàn)g覽器發(fā)送上傳文件通知,上述文件上傳通知是上述服務(wù)器接收到上述瀏覽器發(fā)送的待上傳的文件對(duì)應(yīng)的哈希值,確定上述服務(wù)器中不存在上述待上傳的文件對(duì)應(yīng)的哈希值之后發(fā)送的。

其中,上述待上傳的文件對(duì)應(yīng)的哈希值是瀏覽器對(duì)待上傳的文件的二進(jìn)制數(shù)據(jù)進(jìn)行哈希值計(jì)算獲得的。

本實(shí)施例中,在用戶通過(guò)瀏覽器選擇待上傳的文件,并確認(rèn)上傳文件之后,瀏覽器可以獲得用戶上傳的文件,進(jìn)而可以獲得用戶上傳的文件的二進(jìn)制數(shù)據(jù),其中,用戶上傳的文件即為瀏覽器待上傳至服務(wù)器的文件。

在獲得待上傳的文件的二進(jìn)制數(shù)據(jù)之后,瀏覽器可以對(duì)待上傳的文件的二進(jìn)制數(shù)據(jù)進(jìn)行哈希值計(jì)算,獲得待上傳的文件對(duì)應(yīng)的哈希值,在對(duì)待上傳的文件的二進(jìn)制數(shù)據(jù)進(jìn)行哈希值計(jì)算的過(guò)程中,瀏覽器還可以在用戶界面展示哈希值的計(jì)算進(jìn)度,如圖2所示,待上傳的文件為“ioa3.0.2015.874beta.exe”,哈希值計(jì)算進(jìn)度為“15%”。

瀏覽器計(jì)算獲得上述待上傳的文件對(duì)應(yīng)的哈希值之后,可以將待上傳的文件對(duì)應(yīng)的哈希值發(fā)送給服務(wù)器,以請(qǐng)求上傳上述待上傳的文件。

另外,在將上述待上傳的文件對(duì)應(yīng)的哈希值發(fā)送給服務(wù)器時(shí),瀏覽器還可以將上述待上傳的文件的相關(guān)信息,例如上述待上傳的文件的文件名稱和上述待上傳的文件的大小等信息一并發(fā)送給上述服務(wù)器。

本實(shí)施例中,瀏覽器向上述服務(wù)器發(fā)送上述待上傳的文件對(duì)應(yīng)的哈希值之后,服務(wù)器先判斷上述服務(wù)器中是否存在上述待上傳的文件對(duì)應(yīng)的哈希值,如果不存在,則上述服務(wù)器可以確定上述服務(wù)器中不存在瀏覽器想要上傳的文件,于是上述服務(wù)器向上述瀏覽器發(fā)送上傳文件通知,通知上述瀏覽器上傳待上傳的文件,這說(shuō)明,服務(wù)器可以實(shí)現(xiàn)通過(guò)上述待上傳的文件對(duì)應(yīng)的哈希值離散存儲(chǔ)瀏覽器上傳的文件,從而可以實(shí)現(xiàn)文件的斷點(diǎn)續(xù)傳和秒傳功能。

步驟502,接收上述瀏覽器通過(guò)至少兩個(gè)通道上傳的上述待上傳的文件的至少兩個(gè)分片,上述待上傳的文件的至少兩個(gè)分片是上述瀏覽器確定上述待上傳的文件的大小大于預(yù)定的分片的大小之后,根據(jù)上述預(yù)定的分片的大小對(duì)上述待上傳的文件進(jìn)行分片切割獲得的。

本實(shí)施例中,瀏覽器接收到服務(wù)器發(fā)送的上傳文件通知之后,瀏覽器可以通過(guò)至少兩個(gè)通道將上述待上傳的文件的至少兩個(gè)分片上傳至上述服務(wù)器,從而可以實(shí)現(xiàn)通過(guò)至少兩個(gè)通道上傳文件至服務(wù)器,雖然在每個(gè)通道上傳文件時(shí)仍會(huì)受到滑動(dòng)窗口限制,但由于并發(fā)的上傳請(qǐng)求一起進(jìn)行,可以最大限度地利用網(wǎng)絡(luò)帶寬資源,進(jìn)而可以提高文件上傳速度。

圖6為本申請(qǐng)文件上傳方法再一個(gè)實(shí)施例的流程圖,本實(shí)施例中的文件上傳方法可以由服務(wù)器實(shí)現(xiàn),如圖6所示,上述文件上傳方法可以包括:

步驟601,接收到上述瀏覽器發(fā)送的待上傳的文件對(duì)應(yīng)的哈希值之后,如果上述服務(wù)器中存在上述待上傳的文件對(duì)應(yīng)的哈希值,則建立用戶的標(biāo)識(shí)與上述待上傳的文件之間的關(guān)聯(lián)索引。

其中,上述用戶的標(biāo)識(shí)為向上述瀏覽器上傳上述待上傳的文件的用戶的標(biāo)識(shí)。

步驟602,向上述瀏覽器發(fā)送文件上傳完畢通知。

具體地,本實(shí)施例中,瀏覽器向上述服務(wù)器發(fā)送上述待上傳的文件對(duì)應(yīng)的哈希值之后,如果服務(wù)器確定上述服務(wù)器中存在上述待上傳的文件對(duì)應(yīng)的哈希值,則上述服務(wù)器可以確定上述服務(wù)器中存在瀏覽器想要上傳的文件,于是上述服務(wù)器建立向?yàn)g覽器上傳上述待上傳的文件的用戶的標(biāo)識(shí)與上述待上傳的文件之間的關(guān)聯(lián)索引,然后向上述瀏覽器發(fā)送上傳完畢通知,這種情形下,上述瀏覽器無(wú)需向服務(wù)器上傳上述待上傳的文件。也就是說(shuō),服務(wù)器可以實(shí)現(xiàn)通過(guò)上述待上傳的文件對(duì)應(yīng)的哈希值離散存儲(chǔ)瀏覽器上傳的文件,從而實(shí)現(xiàn)了文件的秒傳功能。

圖7為本申請(qǐng)文件上傳方法再一個(gè)實(shí)施例的流程圖,本實(shí)施例中的文件上傳方法可以由服務(wù)器實(shí)現(xiàn),如圖7所示,本申請(qǐng)圖5所示實(shí)施例中,步驟502可以包括:

步驟701,接收上述瀏覽器發(fā)送的第一存儲(chǔ)空間分配請(qǐng)求。

其中,上述第一存儲(chǔ)空間分配請(qǐng)求是上述瀏覽器確定上述待上傳的文件的大小大于預(yù)定的分片的大小,根據(jù)上述預(yù)定的分片的大小對(duì)上述待上傳的文件進(jìn)行分片切割,獲得上述待上傳的文件的至少兩個(gè)分片之后發(fā)送的,用于請(qǐng)求服務(wù)器為上述至少兩個(gè)分片分配存儲(chǔ)空間。

本實(shí)施例中,瀏覽器接收到上述上傳文件通知之后,確定需要上傳上述待上傳的文件,于是瀏覽器先對(duì)上述待上傳的文件進(jìn)行分片切割,這時(shí)需要先判斷一下上述待上傳的文件的大小與預(yù)定的分片的大小,如果上述待上傳的文件的大小大于預(yù)定的分片的大小,則需要對(duì)上述待上傳的文件進(jìn)行文件切割,于是瀏覽器可以按照上述預(yù)定的分片的大小將上述待上傳的文件切割為至少兩個(gè)分片,將上述待上傳的文件切割為至少兩個(gè)分片之后,瀏覽器會(huì)向上述服務(wù)器發(fā)送第一存儲(chǔ)空間分配請(qǐng)求,以請(qǐng)求上述服務(wù)器為上述至少兩個(gè)分片分配存儲(chǔ)空間,并在發(fā)送的第一存儲(chǔ)空間分配請(qǐng)求中攜帶上述文件切割成的分片的數(shù)量。

其中,上述預(yù)定的分片的大小可以在具體實(shí)現(xiàn)時(shí),根據(jù)業(yè)務(wù)需求和/或系統(tǒng)性能等自行設(shè)定,本實(shí)施例對(duì)上述預(yù)定的分片的大小不作限定,舉例來(lái)說(shuō),上述預(yù)定的分片的大小可以為512kb。

步驟702,根據(jù)上述第一存儲(chǔ)空間分配請(qǐng)求中攜帶的分片的數(shù)量為上述至少兩個(gè)分片分配存儲(chǔ)空間,并確定可用于上傳的通道數(shù)。

其中,上述通道數(shù)大于或等于2,舉例來(lái)說(shuō),上述通道數(shù)可以為4。

步驟703,向上述瀏覽器發(fā)送存儲(chǔ)空間分配完畢的響應(yīng),并向上述瀏覽器通知可用于上傳的通道數(shù)。

具體地,接收到瀏覽器發(fā)送的第一存儲(chǔ)空間分配請(qǐng)求之后,服務(wù)器會(huì)根據(jù)第一存儲(chǔ)空間分配請(qǐng)求中攜帶的分片的數(shù)量為上述至少兩個(gè)分片分配存儲(chǔ)空間,并確定可用于上傳的通道數(shù),然后,服務(wù)器會(huì)向?yàn)g覽器發(fā)送存儲(chǔ)空間分配完畢的響應(yīng),并告知瀏覽器可用于上傳的通道數(shù),這樣瀏覽器可以接收到上述服務(wù)器發(fā)送的存儲(chǔ)空間分配完畢的響應(yīng),并獲得上述服務(wù)器通知的可用于上傳的通道數(shù)。

步驟704,接收上述瀏覽器通過(guò)上述通道數(shù)所指示數(shù)量的通道并發(fā)上傳的至少兩個(gè)分片。

本實(shí)施例中,獲得上述服務(wù)器通知的可用于上傳的通道數(shù)之后,瀏覽器就可以通過(guò)上述通道數(shù)所指示數(shù)量的通道并發(fā)上傳上述至少兩個(gè)分片至服務(wù)器,從而實(shí)現(xiàn)了將文件上傳的過(guò)程在瀏覽器端使用多個(gè)通道并發(fā)進(jìn)行,雖然在每個(gè)通道上傳文件時(shí)仍會(huì)受到滑動(dòng)窗口限制,但由于并發(fā)的上傳請(qǐng)求一起進(jìn)行,可以最大限度地利用網(wǎng)絡(luò)帶寬資源,進(jìn)而可以提高文件上傳速度。

圖8為本申請(qǐng)文件上傳方法再一個(gè)實(shí)施例的流程圖,本實(shí)施例中的文件上傳方法可以由服務(wù)器實(shí)現(xiàn),如圖8所示,本申請(qǐng)圖5所示實(shí)施例中,步驟501之后,還可以包括:

步驟801,接收上述瀏覽器發(fā)送的第二存儲(chǔ)空間分配請(qǐng)求。

其中,上述第二存儲(chǔ)空間分配請(qǐng)求是上述瀏覽器在確定上述待上傳的文件的大小小于或等于預(yù)定的分片的大小之后發(fā)送的,用于請(qǐng)求上述服務(wù)器為上述待上傳的文件分配存儲(chǔ)空間。

步驟802,向上述瀏覽器發(fā)送存儲(chǔ)空間分配完畢的響應(yīng)。

步驟803,接收上述瀏覽器通過(guò)單通道上傳的上述待上傳的文件。

本實(shí)施例中,如果上述待上傳的文件的大小小于或等于預(yù)定的分片的大小,則瀏覽器不需要對(duì)上述文件進(jìn)行文件切割,這時(shí),瀏覽器同樣需要先向服務(wù)器發(fā)送第二存儲(chǔ)空間分配請(qǐng)求,用于請(qǐng)求上述服務(wù)器為上述待上傳的文件分配存儲(chǔ)空間,在接收到上述服務(wù)器發(fā)送的存儲(chǔ)空間分配完畢的響應(yīng)之后,通過(guò)單通道將上述待上傳的文件上傳至服務(wù)器。

下述為本申請(qǐng)裝置實(shí)施例,可以用于執(zhí)行本申請(qǐng)方法實(shí)施例。對(duì)于本申請(qǐng)裝置實(shí)施例中未披露的細(xì)節(jié),請(qǐng)參照本申請(qǐng)方法實(shí)施例。

圖9為本申請(qǐng)文件上傳裝置一個(gè)實(shí)施例的結(jié)構(gòu)示意圖,本實(shí)施例中的文件上傳裝置可以作為瀏覽器,或者瀏覽器的一部分實(shí)現(xiàn)本申請(qǐng)圖1~圖4所示實(shí)施例提供的文件上傳方法,上述文件上傳裝置可以包括:接收模塊91、分片模塊92和上傳模塊93;

其中,接收模塊91,用于接收服務(wù)器發(fā)送的上傳文件通知,上述上傳文件通知是上述服務(wù)器確定上述服務(wù)器中不存在瀏覽器發(fā)送的哈希值之后發(fā)送的,上述瀏覽器發(fā)送的哈希值是上述瀏覽器對(duì)用戶上傳的文件的二進(jìn)制數(shù)據(jù)進(jìn)行哈希值計(jì)算,獲得的上述文件對(duì)應(yīng)的哈希值。

本實(shí)施例中,在用戶通過(guò)瀏覽器選擇待上傳的文件,并確認(rèn)上傳文件之后,瀏覽器可以獲得用戶上傳的文件,進(jìn)而可以獲得用戶上傳的文件的二進(jìn)制數(shù)據(jù)。

在獲得用戶上傳的文件的二進(jìn)制數(shù)據(jù)之后,瀏覽器可以對(duì)用戶上傳的文件的二進(jìn)制數(shù)據(jù)進(jìn)行哈希值計(jì)算,獲得上述文件對(duì)應(yīng)的哈希值。

具體地,瀏覽器可以采用sha對(duì)用戶上傳的文件的二進(jìn)制數(shù)據(jù)進(jìn)行哈希值計(jì)算,當(dāng)然本實(shí)施例并不僅限于此,瀏覽器也可以采用其他的哈希算法對(duì)用戶上傳的文件的二進(jìn)制數(shù)據(jù)進(jìn)行哈希值計(jì)算,本實(shí)施例對(duì)瀏覽器采用的哈希算法不作限定。

本實(shí)施例中,瀏覽器計(jì)算獲得上述文件對(duì)應(yīng)的哈希值之后,將上述文件對(duì)應(yīng)的哈希值發(fā)送給服務(wù)器,以請(qǐng)求上傳文件。

另外,在將上述文件對(duì)應(yīng)的哈希值發(fā)送給服務(wù)器時(shí),瀏覽器還可以將上述文件的相關(guān)信息,例如上述文件的文件名稱和上述文件的大小等信息一并發(fā)送給上述服務(wù)器。

本實(shí)施例中,瀏覽器向上述服務(wù)器發(fā)送上述文件對(duì)應(yīng)的哈希值之后,服務(wù)器先判斷上述服務(wù)器中是否存在上述文件對(duì)應(yīng)的哈希值,如果不存在,則上述服務(wù)器可以確定上述服務(wù)器中不存在瀏覽器想要上傳的文件,于是上述服務(wù)器向上述瀏覽器發(fā)送上傳文件通知,通知上述瀏覽器上傳文件,也就是說(shuō),服務(wù)器可以實(shí)現(xiàn)通過(guò)上述文件對(duì)應(yīng)的哈希值離散存儲(chǔ)瀏覽器上傳的文件,從而可以實(shí)現(xiàn)文件的斷點(diǎn)續(xù)傳和秒傳功能。

分片模塊92,用于根據(jù)接收模塊91接收的上傳文件通知,當(dāng)上述文件的大小大于預(yù)定的分片的大小時(shí),根據(jù)上述預(yù)定的分片的大小對(duì)上述文件進(jìn)行分片切割,獲得上述文件的至少兩個(gè)分片。

具體地,接收模塊91接收到上述上傳文件通知之后,確定需要上傳上述文件,于是分片模塊92先對(duì)上述文件進(jìn)行分片切割,這時(shí)需要先判斷一下上述文件的大小與預(yù)定的分片的大小,如果上述文件的大小大于預(yù)定的分片的大小,則分片模塊92需要對(duì)上述文件進(jìn)行文件切割;而如果上述文件的大小小于或等于預(yù)定的分片的大小,則不需要對(duì)上述文件進(jìn)行文件切割。

其中,上述預(yù)定的分片的大小可以在具體實(shí)現(xiàn)時(shí),根據(jù)業(yè)務(wù)需求和/或系統(tǒng)性能等自行設(shè)定,本實(shí)施例對(duì)上述預(yù)定的分片的大小不作限定,舉例來(lái)說(shuō),上述預(yù)定的分片的大小可以為512kb。

本實(shí)施例中,確定需要對(duì)上述文件進(jìn)行文件切割之后,分片模塊92就按照上述預(yù)定的分片的大小將上述文件切割為至少兩個(gè)分片。

上傳模塊93,用于通過(guò)至少兩個(gè)通道并發(fā)上傳上述至少兩個(gè)分片至上述服務(wù)器。

本實(shí)施例中,接收模塊91接收到上述上傳文件通知之后,上傳模塊93可以通過(guò)至少兩個(gè)通道將上述文件切割獲得的至少兩個(gè)分片上傳至上述服務(wù)器,從而可以實(shí)現(xiàn)瀏覽器通過(guò)至少兩個(gè)通道上傳文件至服務(wù)器,雖然在每個(gè)通道上傳文件時(shí)仍會(huì)受到滑動(dòng)窗口限制,但由于并發(fā)的上傳請(qǐng)求一起進(jìn)行,可以最大限度地利用網(wǎng)絡(luò)帶寬資源,進(jìn)而可以提高文件上傳速度。

本實(shí)施例中,如果上述文件的大小小于或等于預(yù)定的分片的大小,則不需要對(duì)上述文件進(jìn)行文件切割,這時(shí),瀏覽器需要先請(qǐng)求上述服務(wù)器為上述文件分配存儲(chǔ)空間,在接收到上述服務(wù)器發(fā)送的存儲(chǔ)空間分配完畢的響應(yīng)之后,上傳模塊93通過(guò)單通道將上述文件上傳至服務(wù)器。

另外,本申請(qǐng)?zhí)峁┑奈募蟼餮b置中,接收模塊91,還用于接收服務(wù)器發(fā)送的文件上傳完畢通知,上述文件上傳完畢通知是上述服務(wù)器確定上述服務(wù)器中存在瀏覽器發(fā)送的哈希值,上述瀏覽器發(fā)送的哈希值是上述瀏覽器對(duì)用戶上傳的文件的二進(jìn)制數(shù)據(jù)進(jìn)行哈希值計(jì)算,獲得的上述文件對(duì)應(yīng)的哈希值,并且建立上述用戶的標(biāo)識(shí)與上述文件之間的關(guān)聯(lián)索引之后發(fā)送的。

具體地,本實(shí)施例中,瀏覽器向上述服務(wù)器發(fā)送上述文件對(duì)應(yīng)的哈希值之后,服務(wù)器先判斷上述服務(wù)器中是否存在上述文件對(duì)應(yīng)的哈希值,如果存在,則上述服務(wù)器可以確定上述服務(wù)器中存在瀏覽器想要上傳的文件,于是上述服務(wù)器建立向?yàn)g覽器上傳上述文件的用戶的標(biāo)識(shí)與上述文件之間的關(guān)聯(lián)索引,然后向上述瀏覽器發(fā)送上傳完畢通知,這種情形下,上述瀏覽器無(wú)需向服務(wù)器上傳上述文件。也就是說(shuō),服務(wù)器可以實(shí)現(xiàn)通過(guò)上述文件對(duì)應(yīng)的哈希值離散存儲(chǔ)瀏覽器上傳的文件,從而實(shí)現(xiàn)了文件的秒傳功能。

圖10為本申請(qǐng)文件上傳裝置另一個(gè)實(shí)施例的結(jié)構(gòu)示意圖,與圖9所示的文件上傳裝置相比,不同之處在于,圖10所示的文件上傳裝置中還可以包括:請(qǐng)求模塊94和獲得模塊95;

其中,請(qǐng)求模塊94,用于在分片模塊92根據(jù)上述預(yù)定的分片的大小對(duì)上述文件進(jìn)行分片切割,獲得上述文件的至少兩個(gè)分片之后,請(qǐng)求上述服務(wù)器為上述至少兩個(gè)分片分配存儲(chǔ)空間;本實(shí)施例中,分片模塊92將上述文件切割為至少兩個(gè)分片之后,請(qǐng)求模塊94會(huì)向上述服務(wù)器發(fā)送請(qǐng)求,以請(qǐng)求上述服務(wù)器為上述至少兩個(gè)分片分配存儲(chǔ)空間,并在發(fā)送的請(qǐng)求中攜帶上述文件切割成的分片的數(shù)量。

接收模塊91,還用于接收上述服務(wù)器發(fā)送的存儲(chǔ)空間分配完畢的響應(yīng);

獲得模塊95,用于獲得上述服務(wù)器通知的可用于上傳的通道數(shù),上述通道數(shù)是上述服務(wù)器根據(jù)上述文件的分片的數(shù)量確定的,上述通道數(shù)大于或等于2;舉例來(lái)說(shuō),上述通道數(shù)可以為4。

具體地,瀏覽器請(qǐng)求服務(wù)器為上述至少兩個(gè)分片分配存儲(chǔ)空間之后,服務(wù)器會(huì)根據(jù)瀏覽器發(fā)送的請(qǐng)求中攜帶的分片的數(shù)量為上述至少兩個(gè)分片分配存儲(chǔ)空間,并確定可用于上傳的通道數(shù),然后,服務(wù)器會(huì)向?yàn)g覽器發(fā)送存儲(chǔ)空間分配完畢的響應(yīng),并告知瀏覽器可用于上傳的通道數(shù),這樣接收模塊91可以接收到上述服務(wù)器發(fā)送的存儲(chǔ)空間分配完畢的響應(yīng),獲得模塊95可以獲得上述服務(wù)器通知的可用于上傳的通道數(shù)。

本實(shí)施例中,上傳模塊93使用的至少兩個(gè)通道所包含通道的數(shù)量為上述服務(wù)器通知的可用于上傳的通道數(shù),從而實(shí)現(xiàn)了將文件上傳的過(guò)程在瀏覽器端使用多個(gè)通道并發(fā)進(jìn)行,雖然在每個(gè)通道上傳文件時(shí)仍會(huì)受到滑動(dòng)窗口限制,但由于并發(fā)的上傳請(qǐng)求一起進(jìn)行,可以最大限度地利用網(wǎng)絡(luò)帶寬資源,進(jìn)而可以提高文件上傳速度。

在具體實(shí)現(xiàn)時(shí),上傳模塊93,具體用于將上述至少兩個(gè)分片放入待上傳分片隊(duì)列,通過(guò)上述至少兩個(gè)通道將上述待上傳分片隊(duì)列中的分片并發(fā)上傳至上述服務(wù)器。

進(jìn)一步地,上傳模塊93,還用于在通過(guò)上述至少兩個(gè)通道將上述待上傳分片隊(duì)列中的分片并發(fā)上傳至上述服務(wù)器的過(guò)程中,當(dāng)出現(xiàn)上傳失敗的分片時(shí),將上述上傳失敗的分片重新放入上述待上傳分片隊(duì)列中等待重新上傳。

也就是說(shuō),在具體實(shí)現(xiàn)時(shí),上傳模塊93在通過(guò)上述至少兩個(gè)通道并發(fā)上傳上述至少兩個(gè)分片至服務(wù)器時(shí),是先將上述至少兩個(gè)分片放入待上傳分片隊(duì)列,然后通過(guò)上述至少兩個(gè)通道將上述待上傳分片隊(duì)列中的分片并發(fā)上傳至上述服務(wù)器,在這過(guò)程中,如果出現(xiàn)上傳失敗的分片,則上傳模塊93將上述上傳失敗的分片重新放入上述待上傳分片隊(duì)列中等待重新上傳,這就實(shí)現(xiàn)了斷點(diǎn)續(xù)傳功能,極大減少了由于網(wǎng)絡(luò)環(huán)境波動(dòng)等問(wèn)題造成上傳失敗后,用戶重試上傳文件的時(shí)間成本,提高了用戶體驗(yàn)。

進(jìn)一步地,上述文件上傳裝置還可以包括:展示模塊96;

展示模塊96,用于在對(duì)用戶上傳的文件的二進(jìn)制數(shù)據(jù)進(jìn)行哈希值計(jì)算的過(guò)程中,在用戶界面展示哈希值的計(jì)算進(jìn)度。參見(jiàn)圖2,用戶上傳的文件為“ioa3.0.2015.874beta.exe”,哈希值計(jì)算進(jìn)度為“15%”。

圖11為本申請(qǐng)文件上傳裝置再一個(gè)實(shí)施例的結(jié)構(gòu)示意圖,本實(shí)施例中的文件上傳裝置可以作為服務(wù)器,或者服務(wù)器的一部分實(shí)現(xiàn)本申請(qǐng)圖5~圖8所示實(shí)施例的流程。

如圖11所示,上述文件上傳裝置可以包括:發(fā)送模塊1101和接收模塊1102;

其中,發(fā)送模塊1101,用于向?yàn)g覽器發(fā)送上傳文件通知,上述文件上傳通知是上述服務(wù)器接收到上述瀏覽器發(fā)送的待上傳的文件對(duì)應(yīng)的哈希值,確定上述服務(wù)器中不存在上述待上傳的文件對(duì)應(yīng)的哈希值之后發(fā)送的;

其中,上述待上傳的文件對(duì)應(yīng)的哈希值是瀏覽器對(duì)待上傳的文件的二進(jìn)制數(shù)據(jù)進(jìn)行哈希值計(jì)算獲得的。

本實(shí)施例中,在用戶通過(guò)瀏覽器選擇待上傳的文件,并確認(rèn)上傳文件之后,瀏覽器可以獲得用戶上傳的文件,進(jìn)而可以獲得用戶上傳的文件的二進(jìn)制數(shù)據(jù),其中,用戶上傳的文件即為瀏覽器待上傳至服務(wù)器的文件。

在獲得待上傳的文件的二進(jìn)制數(shù)據(jù)之后,瀏覽器可以對(duì)待上傳的文件的二進(jìn)制數(shù)據(jù)進(jìn)行哈希值計(jì)算,獲得待上傳的文件對(duì)應(yīng)的哈希值,在對(duì)待上傳的文件的二進(jìn)制數(shù)據(jù)進(jìn)行哈希值計(jì)算的過(guò)程中,瀏覽器還可以在用戶界面展示哈希值的計(jì)算進(jìn)度,如圖2所示,待上傳的文件為“ioa3.0.2015.874beta.exe”,哈希值計(jì)算進(jìn)度為“15%”。

瀏覽器計(jì)算獲得上述待上傳的文件對(duì)應(yīng)的哈希值之后,可以將待上傳的文件對(duì)應(yīng)的哈希值發(fā)送給服務(wù)器,以請(qǐng)求上傳上述待上傳的文件。

另外,在將上述待上傳的文件對(duì)應(yīng)的哈希值發(fā)送給服務(wù)器時(shí),瀏覽器還可以將上述待上傳的文件的相關(guān)信息,例如上述待上傳的文件的文件名稱和上述待上傳的文件的大小等信息一并發(fā)送給上述服務(wù)器。

本實(shí)施例中,瀏覽器向上述服務(wù)器發(fā)送上述待上傳的文件對(duì)應(yīng)的哈希值之后,服務(wù)器先判斷上述服務(wù)器中是否存在上述待上傳的文件對(duì)應(yīng)的哈希值,如果不存在,則上述服務(wù)器可以確定上述服務(wù)器中不存在瀏覽器想要上傳的文件,于是發(fā)送模塊1101向上述瀏覽器發(fā)送上傳文件通知,通知上述瀏覽器上傳待上傳的文件,這說(shuō)明,服務(wù)器可以實(shí)現(xiàn)通過(guò)上述待上傳的文件對(duì)應(yīng)的哈希值離散存儲(chǔ)瀏覽器上傳的文件,從而可以實(shí)現(xiàn)文件的斷點(diǎn)續(xù)傳和秒傳功能。

接收模塊1102,用于接收上述瀏覽器通過(guò)至少兩個(gè)通道上傳的上述待上傳的文件的至少兩個(gè)分片,上述待上傳的文件的至少兩個(gè)分片是上述瀏覽器確定上述待上傳的文件的大小大于預(yù)定的分片的大小之后,根據(jù)上述預(yù)定的分片的大小對(duì)上述待上傳的文件進(jìn)行分片切割獲得的。

本實(shí)施例中,瀏覽器接收到服務(wù)器發(fā)送的上傳文件通知之后,瀏覽器可以通過(guò)至少兩個(gè)通道將上述待上傳的文件的至少兩個(gè)分片上傳至上述服務(wù)器,從而可以實(shí)現(xiàn)通過(guò)至少兩個(gè)通道上傳文件至服務(wù)器,雖然在每個(gè)通道上傳文件時(shí)仍會(huì)受到滑動(dòng)窗口限制,但由于并發(fā)的上傳請(qǐng)求一起進(jìn)行,可以最大限度地利用網(wǎng)絡(luò)帶寬資源,進(jìn)而可以提高文件上傳速度。

圖12為本申請(qǐng)文件上傳裝置再一個(gè)實(shí)施例的結(jié)構(gòu)示意圖,與圖11所示的文件上傳裝置相比,不同之處在于,圖12所示的文件上傳裝置還可以包括:建立模塊1103;

建立模塊1103,用于在接收到上述瀏覽器發(fā)送的待上傳的文件對(duì)應(yīng)的哈希值之后,當(dāng)確定上述服務(wù)器中存在上述待上傳的文件對(duì)應(yīng)的哈希值時(shí),建立用戶的標(biāo)識(shí)與上述待上傳的文件之間的關(guān)聯(lián)索引,上述用戶的標(biāo)識(shí)為向上述瀏覽器上傳上述待上傳的文件的用戶的標(biāo)識(shí);

發(fā)送模塊1101,還用于向上述瀏覽器發(fā)送文件上傳完畢通知。

具體地,本實(shí)施例中,瀏覽器向上述服務(wù)器發(fā)送上述待上傳的文件對(duì)應(yīng)的哈希值之后,如果確定上述服務(wù)器中存在上述待上傳的文件對(duì)應(yīng)的哈希值,則可以確定上述服務(wù)器中存在瀏覽器想要上傳的文件,于是建立模塊1103建立向?yàn)g覽器上傳上述待上傳的文件的用戶的標(biāo)識(shí)與上述待上傳的文件之間的關(guān)聯(lián)索引,然后發(fā)送模塊1101向上述瀏覽器發(fā)送上傳完畢通知,這種情形下,上述瀏覽器無(wú)需向服務(wù)器上傳上述待上傳的文件。也就是說(shuō),服務(wù)器可以實(shí)現(xiàn)通過(guò)上述待上傳的文件對(duì)應(yīng)的哈希值離散存儲(chǔ)瀏覽器上傳的文件,從而實(shí)現(xiàn)了文件的秒傳功能。

進(jìn)一步地,上述文件上傳裝置還可以包括:分配模塊1104和確定模塊1105;

接收模塊1102,還用于接收上述瀏覽器發(fā)送的第一存儲(chǔ)空間分配請(qǐng)求,上述第一存儲(chǔ)空間分配請(qǐng)求是上述瀏覽器確定上述待上傳的文件的大小大于預(yù)定的分片的大小,根據(jù)上述預(yù)定的分片的大小對(duì)上述待上傳的文件進(jìn)行分片切割,獲得上述待上傳的文件的至少兩個(gè)分片之后發(fā)送的,用于請(qǐng)求上述服務(wù)器為上述至少兩個(gè)分片分配存儲(chǔ)空間。

本實(shí)施例中,瀏覽器接收到上述上傳文件通知之后,確定需要上傳上述待上傳的文件,于是瀏覽器先對(duì)上述待上傳的文件進(jìn)行分片切割,這時(shí)需要先判斷一下上述待上傳的文件的大小與預(yù)定的分片的大小,如果上述待上傳的文件的大小大于預(yù)定的分片的大小,則需要對(duì)上述待上傳的文件進(jìn)行文件切割,于是瀏覽器可以按照上述預(yù)定的分片的大小將上述待上傳的文件切割為至少兩個(gè)分片,將上述待上傳的文件切割為至少兩個(gè)分片之后,瀏覽器會(huì)向上述服務(wù)器發(fā)送第一存儲(chǔ)空間分配請(qǐng)求,以請(qǐng)求上述服務(wù)器為上述至少兩個(gè)分片分配存儲(chǔ)空間,并在發(fā)送的第一存儲(chǔ)空間分配請(qǐng)求中攜帶上述文件切割成的分片的數(shù)量。

其中,上述預(yù)定的分片的大小可以在具體實(shí)現(xiàn)時(shí),根據(jù)業(yè)務(wù)需求和/或系統(tǒng)性能等自行設(shè)定,本實(shí)施例對(duì)上述預(yù)定的分片的大小不作限定,舉例來(lái)說(shuō),上述預(yù)定的分片的大小可以為512kb。

分配模塊1104,用于根據(jù)接收模塊1102接收的第一存儲(chǔ)空間分配請(qǐng)求中攜帶的分片的數(shù)量為上述至少兩個(gè)分片分配存儲(chǔ)空間。

確定模塊1105,用于根據(jù)接收模塊1102接收的第一存儲(chǔ)空間分配請(qǐng)求中攜帶的分片的數(shù)量確定可用于上傳的通道數(shù),上述通道數(shù)大于或等于2;舉例來(lái)說(shuō),上述通道數(shù)可以為4。

發(fā)送模塊1101,還用于向上述瀏覽器發(fā)送存儲(chǔ)空間分配完畢的響應(yīng),并向上述瀏覽器通知可用于上傳的通道數(shù);具體地,接收模塊1102接收到瀏覽器發(fā)送的第一存儲(chǔ)空間分配請(qǐng)求之后,分配模塊1104會(huì)根據(jù)第一存儲(chǔ)空間分配請(qǐng)求中攜帶的分片的數(shù)量為上述至少兩個(gè)分片分配存儲(chǔ)空間,確定模塊1105確定可用于上傳的通道數(shù),然后,發(fā)送模塊1101會(huì)向?yàn)g覽器發(fā)送存儲(chǔ)空間分配完畢的響應(yīng),并告知瀏覽器可用于上傳的通道數(shù),這樣瀏覽器可以接收到上述服務(wù)器發(fā)送的存儲(chǔ)空間分配完畢的響應(yīng),并獲得上述服務(wù)器通知的可用于上傳的通道數(shù)。

接收模塊1102,還用于接收上述瀏覽器通過(guò)上述通道數(shù)所指示數(shù)量的通道并發(fā)上傳的至少兩個(gè)分片。本實(shí)施例中,獲得上述服務(wù)器通知的可用于上傳的通道數(shù)之后,瀏覽器就可以通過(guò)上述通道數(shù)所指示數(shù)量的通道并發(fā)上傳上述至少兩個(gè)分片至服務(wù)器,從而實(shí)現(xiàn)了將文件上傳的過(guò)程在瀏覽器端使用多個(gè)通道并發(fā)進(jìn)行,雖然在每個(gè)通道上傳文件時(shí)仍會(huì)受到滑動(dòng)窗口限制,但由于并發(fā)的上傳請(qǐng)求一起進(jìn)行,可以最大限度地利用網(wǎng)絡(luò)帶寬資源,進(jìn)而可以提高文件上傳速度。

進(jìn)一步地,接收模塊1102,還用于接收上述瀏覽器發(fā)送的第二存儲(chǔ)空間分配請(qǐng)求,上述第二存儲(chǔ)空間分配請(qǐng)求是上述瀏覽器在確定上述待上傳的文件的大小小于或等于預(yù)定的分片的大小之后發(fā)送的,用于請(qǐng)求上述服務(wù)器為上述待上傳的文件分配存儲(chǔ)空間;

發(fā)送模塊1101,還用于向上述瀏覽器發(fā)送存儲(chǔ)空間分配完畢的響應(yīng);

接收模塊1102,還用于接收上述瀏覽器通過(guò)單通道上傳的上述待上傳的文件。

本實(shí)施例中,如果上述待上傳的文件的大小小于或等于預(yù)定的分片的大小,則瀏覽器不需要對(duì)上述文件進(jìn)行文件切割,這時(shí),瀏覽器同樣需要先向服務(wù)器發(fā)送第二存儲(chǔ)空間分配請(qǐng)求,用于請(qǐng)求上述服務(wù)器為上述待上傳的文件分配存儲(chǔ)空間,在接收到上述服務(wù)器發(fā)送的存儲(chǔ)空間分配完畢的響應(yīng)之后,瀏覽器通過(guò)單通道將上述待上傳的文件上傳至服務(wù)器。

圖13為本申請(qǐng)計(jì)算機(jī)設(shè)備一個(gè)實(shí)施例的結(jié)構(gòu)示意圖,本實(shí)施例中的計(jì)算機(jī)設(shè)備可以實(shí)現(xiàn)瀏覽器的功能,上述計(jì)算機(jī)設(shè)備可以包括:一個(gè)或多個(gè)處理器;存儲(chǔ)器,用于存儲(chǔ)一個(gè)或多個(gè)程序;接收器,用于接收服務(wù)器發(fā)送的上傳文件通知,上述上傳文件通知是上述服務(wù)器確定上述服務(wù)器中不存在瀏覽器發(fā)送的哈希值之后發(fā)送的,上述瀏覽器發(fā)送的哈希值是上述瀏覽器對(duì)用戶上傳的文件的二進(jìn)制數(shù)據(jù)進(jìn)行哈希值計(jì)算,獲得的上述文件對(duì)應(yīng)的哈希值;當(dāng)上述一個(gè)或多個(gè)程序被上述一個(gè)或多個(gè)處理器執(zhí)行時(shí),使得上述一個(gè)或多個(gè)處理器根據(jù)上述接收器接收的上傳文件通知,如果上述文件的大小大于預(yù)定的分片的大小,則根據(jù)上述預(yù)定的分片的大小對(duì)上述文件進(jìn)行分片切割,獲得上述文件的至少兩個(gè)分片;發(fā)送器,用于通過(guò)至少兩個(gè)通道并發(fā)上傳上述處理器獲得的至少兩個(gè)分片至上述服務(wù)器。

圖13示出了適于用來(lái)實(shí)現(xiàn)本申請(qǐng)實(shí)施方式的示例性計(jì)算機(jī)設(shè)備的框圖。圖13顯示的計(jì)算機(jī)設(shè)備12僅僅是一個(gè)示例,不應(yīng)對(duì)本申請(qǐng)實(shí)施例的功能和使用范圍帶來(lái)任何限制。

如圖13所示,計(jì)算機(jī)設(shè)備12以通用計(jì)算設(shè)備的形式表現(xiàn)。計(jì)算機(jī)設(shè)備12的組件可以包括但不限于:一個(gè)或者多個(gè)處理器或者處理單元16,系統(tǒng)存儲(chǔ)器28,連接不同系統(tǒng)組件(包括系統(tǒng)存儲(chǔ)器28和處理單元16)的總線18。

總線18表示幾類總線結(jié)構(gòu)中的一種或多種,包括存儲(chǔ)器總線或者存儲(chǔ)器控制器,外圍總線,圖形加速端口,處理器或者使用多種總線結(jié)構(gòu)中的任意總線結(jié)構(gòu)的局域總線。舉例來(lái)說(shuō),這些體系結(jié)構(gòu)包括但不限于工業(yè)標(biāo)準(zhǔn)體系結(jié)構(gòu)(industrystandardarchitecture;以下簡(jiǎn)稱:isa)總線,微通道體系結(jié)構(gòu)(microchannelarchitecture;以下簡(jiǎn)稱:mac)總線,增強(qiáng)型isa總線、視頻電子標(biāo)準(zhǔn)協(xié)會(huì)(videoelectronicsstandardsassociation;以下簡(jiǎn)稱:vesa)局域總線以及外圍組件互連(peripheralcomponentinterconnection;以下簡(jiǎn)稱:pci)總線。

計(jì)算機(jī)設(shè)備12典型地包括多種計(jì)算機(jī)系統(tǒng)可讀介質(zhì)。這些介質(zhì)可以是任何能夠被計(jì)算機(jī)設(shè)備12訪問(wèn)的可用介質(zhì),包括易失性和非易失性介質(zhì),可移動(dòng)的和不可移動(dòng)的介質(zhì)。

系統(tǒng)存儲(chǔ)器28可以包括易失性存儲(chǔ)器形式的計(jì)算機(jī)系統(tǒng)可讀介質(zhì),例如隨機(jī)存取存儲(chǔ)器(randomaccessmemory;以下簡(jiǎn)稱:ram)30和/或高速緩存存儲(chǔ)器32。計(jì)算機(jī)設(shè)備12可以進(jìn)一步包括其它可移動(dòng)/不可移動(dòng)的、易失性/非易失性計(jì)算機(jī)系統(tǒng)存儲(chǔ)介質(zhì)。僅作為舉例,存儲(chǔ)系統(tǒng)34可以用于讀寫不可移動(dòng)的、非易失性磁介質(zhì)(圖13未顯示,通常稱為“硬盤驅(qū)動(dòng)器”)。盡管圖13中未示出,可以提供用于對(duì)可移動(dòng)非易失性磁盤(例如“軟盤”)讀寫的磁盤驅(qū)動(dòng)器,以及對(duì)可移動(dòng)非易失性光盤(例如:光盤只讀存儲(chǔ)器(compactdiscreadonlymemory;以下簡(jiǎn)稱:cd-rom)、數(shù)字多功能只讀光盤(digitalvideodiscreadonlymemory;以下簡(jiǎn)稱:dvd-rom)或者其它光介質(zhì))讀寫的光盤驅(qū)動(dòng)器。在這些情況下,每個(gè)驅(qū)動(dòng)器可以通過(guò)一個(gè)或者多個(gè)數(shù)據(jù)介質(zhì)接口與總線18相連。存儲(chǔ)器28可以包括至少一個(gè)程序產(chǎn)品,該程序產(chǎn)品具有一組(例如至少一個(gè))程序模塊,這些程序模塊被配置以執(zhí)行本申請(qǐng)各實(shí)施例的功能。

具有一組(至少一個(gè))程序模塊42的程序/實(shí)用工具40,可以存儲(chǔ)在例如存儲(chǔ)器28中,這樣的程序模塊42包括——但不限于——操作系統(tǒng)、一個(gè)或者多個(gè)應(yīng)用程序、其它程序模塊以及程序數(shù)據(jù),這些示例中的每一個(gè)或某種組合中可能包括網(wǎng)絡(luò)環(huán)境的實(shí)現(xiàn)。程序模塊42通常執(zhí)行本申請(qǐng)所描述的實(shí)施例中的功能和/或方法。

計(jì)算機(jī)設(shè)備12也可以與一個(gè)或多個(gè)外部設(shè)備14(例如鍵盤、指向設(shè)備、顯示器24等)通信,還可與一個(gè)或者多個(gè)使得用戶能與該計(jì)算機(jī)設(shè)備12交互的設(shè)備通信,和/或與使得該計(jì)算機(jī)設(shè)備12能與一個(gè)或多個(gè)其它計(jì)算設(shè)備進(jìn)行通信的任何設(shè)備(例如網(wǎng)卡,調(diào)制解調(diào)器等等)通信。這種通信可以通過(guò)輸入/輸出(i/o)接口22進(jìn)行。并且,計(jì)算機(jī)設(shè)備12還可以通過(guò)網(wǎng)絡(luò)適配器20與一個(gè)或者多個(gè)網(wǎng)絡(luò)(例如局域網(wǎng)(localareanetwork;以下簡(jiǎn)稱:lan),廣域網(wǎng)(wideareanetwork;以下簡(jiǎn)稱:wan)和/或公共網(wǎng)絡(luò),例如因特網(wǎng))通信。如圖13所示,網(wǎng)絡(luò)適配器20通過(guò)總線18與計(jì)算機(jī)設(shè)備12的其它模塊通信。應(yīng)當(dāng)明白,盡管圖13中未示出,可以結(jié)合計(jì)算機(jī)設(shè)備12使用其它硬件和/或軟件模塊,包括但不限于:微代碼、設(shè)備驅(qū)動(dòng)器、冗余處理單元、外部磁盤驅(qū)動(dòng)陣列、raid系統(tǒng)、磁帶驅(qū)動(dòng)器以及數(shù)據(jù)備份存儲(chǔ)系統(tǒng)等。

處理單元16通過(guò)運(yùn)行存儲(chǔ)在系統(tǒng)存儲(chǔ)器28中的程序,從而執(zhí)行各種功能應(yīng)用以及數(shù)據(jù)處理,例如實(shí)現(xiàn)本申請(qǐng)圖1~圖4所示實(shí)施例提供的文件上傳方法。

本實(shí)施例還提供一種非臨時(shí)性計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),當(dāng)上述存儲(chǔ)介質(zhì)中的計(jì)算機(jī)可執(zhí)行指令在由計(jì)算機(jī)處理器執(zhí)行時(shí),用于執(zhí)行本申請(qǐng)圖1~圖4所示實(shí)施例提供的文件上傳方法。

上述非臨時(shí)性計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)可以采用一個(gè)或多個(gè)計(jì)算機(jī)可讀的介質(zhì)的任意組合。計(jì)算機(jī)可讀介質(zhì)可以是計(jì)算機(jī)可讀信號(hào)介質(zhì)或者計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)。計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)例如可以是——但不限于——電、磁、光、電磁、紅外線、或半導(dǎo)體的系統(tǒng)、裝置或器件,或者任意以上的組合。計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)的更具體的例子(非窮舉的列表)包括:具有一個(gè)或多個(gè)導(dǎo)線的電連接、便攜式計(jì)算機(jī)磁盤、硬盤、隨機(jī)存取存儲(chǔ)器(ram)、只讀存儲(chǔ)器(readonlymemory;以下簡(jiǎn)稱:rom)、可擦式可編程只讀存儲(chǔ)器(erasableprogrammablereadonlymemory;以下簡(jiǎn)稱:eprom)或閃存、光纖、便攜式緊湊磁盤只讀存儲(chǔ)器(cd-rom)、光存儲(chǔ)器件、磁存儲(chǔ)器件、或者上述的任意合適的組合。在本文件中,計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)可以是任何包含或存儲(chǔ)程序的有形介質(zhì),該程序可以被指令執(zhí)行系統(tǒng)、裝置或者器件使用或者與其結(jié)合使用。

計(jì)算機(jī)可讀的信號(hào)介質(zhì)可以包括在基帶中或者作為載波一部分傳播的數(shù)據(jù)信號(hào),其中承載了計(jì)算機(jī)可讀的程序代碼。這種傳播的數(shù)據(jù)信號(hào)可以采用多種形式,包括——但不限于——電磁信號(hào)、光信號(hào)或上述的任意合適的組合。計(jì)算機(jī)可讀的信號(hào)介質(zhì)還可以是計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)以外的任何計(jì)算機(jī)可讀介質(zhì),該計(jì)算機(jī)可讀介質(zhì)可以發(fā)送、傳播或者傳輸用于由指令執(zhí)行系統(tǒng)、裝置或者器件使用或者與其結(jié)合使用的程序。

計(jì)算機(jī)可讀介質(zhì)上包含的程序代碼可以用任何適當(dāng)?shù)慕橘|(zhì)傳輸,包括——但不限于——無(wú)線、電線、光纜、rf等等,或者上述的任意合適的組合。

可以以一種或多種程序設(shè)計(jì)語(yǔ)言或其組合來(lái)編寫用于執(zhí)行本申請(qǐng)操作的計(jì)算機(jī)程序代碼,所述程序設(shè)計(jì)語(yǔ)言包括面向?qū)ο蟮某绦蛟O(shè)計(jì)語(yǔ)言—諸如java、smalltalk、c++,還包括常規(guī)的過(guò)程式程序設(shè)計(jì)語(yǔ)言—諸如“c”語(yǔ)言或類似的程序設(shè)計(jì)語(yǔ)言。程序代碼可以完全地在用戶計(jì)算機(jī)上執(zhí)行、部分地在用戶計(jì)算機(jī)上執(zhí)行、作為一個(gè)獨(dú)立的軟件包執(zhí)行、部分在用戶計(jì)算機(jī)上部分在遠(yuǎn)程計(jì)算機(jī)上執(zhí)行、或者完全在遠(yuǎn)程計(jì)算機(jī)或服務(wù)器上執(zhí)行。在涉及遠(yuǎn)程計(jì)算機(jī)的情形中,遠(yuǎn)程計(jì)算機(jī)可以通過(guò)任意種類的網(wǎng)絡(luò)——包括局域網(wǎng)(localareanetwork;以下簡(jiǎn)稱:lan)或廣域網(wǎng)(wideareanetwork;以下簡(jiǎn)稱:wan)連接到用戶計(jì)算機(jī),或者,可以連接到外部計(jì)算機(jī)(例如利用因特網(wǎng)服務(wù)提供商來(lái)通過(guò)因特網(wǎng)連接)。

圖14為本申請(qǐng)計(jì)算機(jī)設(shè)備另一個(gè)實(shí)施例的結(jié)構(gòu)示意圖,本實(shí)施例中的計(jì)算機(jī)設(shè)備可以實(shí)現(xiàn)服務(wù)器的功能,上述計(jì)算機(jī)設(shè)備可以包括:一個(gè)或多個(gè)處理器;存儲(chǔ)器,用于存儲(chǔ)一個(gè)或多個(gè)程序;發(fā)送器,用于向?yàn)g覽器發(fā)送上傳文件通知,上述文件上傳通知是服務(wù)器接收到上述瀏覽器發(fā)送的待上傳的文件對(duì)應(yīng)的哈希值,確定上述服務(wù)器中不存在上述待上傳的文件對(duì)應(yīng)的哈希值之后發(fā)送的;接收器,用于接收通過(guò)至少兩個(gè)通道上傳的上述待上傳的文件的至少兩個(gè)分片,上述待上傳的文件的至少兩個(gè)分片是上述瀏覽器確定上述待上傳的文件的大小大于預(yù)定的分片的大小之后,根據(jù)上述預(yù)定的分片的大小對(duì)上述待上傳的文件進(jìn)行分片切割獲得的。

圖14示出了適于用來(lái)實(shí)現(xiàn)本申請(qǐng)實(shí)施方式的示例性計(jì)算機(jī)設(shè)備的框圖。圖14顯示的計(jì)算機(jī)設(shè)備120僅僅是一個(gè)示例,不應(yīng)對(duì)本申請(qǐng)實(shí)施例的功能和使用范圍帶來(lái)任何限制。

如圖14所示,計(jì)算機(jī)設(shè)備120以通用計(jì)算設(shè)備的形式表現(xiàn)。計(jì)算機(jī)設(shè)備120的組件可以包括但不限于:一個(gè)或者多個(gè)處理器或者處理單元160,系統(tǒng)存儲(chǔ)器280,連接不同系統(tǒng)組件(包括系統(tǒng)存儲(chǔ)器280和處理單元160)的總線180。

總線180表示幾類總線結(jié)構(gòu)中的一種或多種,包括存儲(chǔ)器總線或者存儲(chǔ)器控制器,外圍總線,圖形加速端口,處理器或者使用多種總線結(jié)構(gòu)中的任意總線結(jié)構(gòu)的局域總線。舉例來(lái)說(shuō),這些體系結(jié)構(gòu)包括但不限于工業(yè)標(biāo)準(zhǔn)體系結(jié)構(gòu)(industrystandardarchitecture;以下簡(jiǎn)稱:isa)總線,微通道體系結(jié)構(gòu)(microchannelarchitecture;以下簡(jiǎn)稱:mac)總線,增強(qiáng)型isa總線、視頻電子標(biāo)準(zhǔn)協(xié)會(huì)(videoelectronicsstandardsassociation;以下簡(jiǎn)稱:vesa)局域總線以及外圍組件互連(peripheralcomponentinterconnection;以下簡(jiǎn)稱:pci)總線。

計(jì)算機(jī)設(shè)備120典型地包括多種計(jì)算機(jī)系統(tǒng)可讀介質(zhì)。這些介質(zhì)可以是任何能夠被計(jì)算機(jī)設(shè)備120訪問(wèn)的可用介質(zhì),包括易失性和非易失性介質(zhì),可移動(dòng)的和不可移動(dòng)的介質(zhì)。

系統(tǒng)存儲(chǔ)器280可以包括易失性存儲(chǔ)器形式的計(jì)算機(jī)系統(tǒng)可讀介質(zhì),例如隨機(jī)存取存儲(chǔ)器(randomaccessmemory;以下簡(jiǎn)稱:ram)300和/或高速緩存存儲(chǔ)器320。計(jì)算機(jī)設(shè)備120可以進(jìn)一步包括其它可移動(dòng)/不可移動(dòng)的、易失性/非易失性計(jì)算機(jī)系統(tǒng)存儲(chǔ)介質(zhì)。僅作為舉例,存儲(chǔ)系統(tǒng)340可以用于讀寫不可移動(dòng)的、非易失性磁介質(zhì)(圖14未顯示,通常稱為“硬盤驅(qū)動(dòng)器”)。盡管圖14中未示出,可以提供用于對(duì)可移動(dòng)非易失性磁盤(例如“軟盤”)讀寫的磁盤驅(qū)動(dòng)器,以及對(duì)可移動(dòng)非易失性光盤(例如:光盤只讀存儲(chǔ)器(compactdiscreadonlymemory;以下簡(jiǎn)稱:cd-rom)、數(shù)字多功能只讀光盤(digitalvideodiscreadonlymemory;以下簡(jiǎn)稱:dvd-rom)或者其它光介質(zhì))讀寫的光盤驅(qū)動(dòng)器。在這些情況下,每個(gè)驅(qū)動(dòng)器可以通過(guò)一個(gè)或者多個(gè)數(shù)據(jù)介質(zhì)接口與總線180相連。存儲(chǔ)器280可以包括至少一個(gè)程序產(chǎn)品,該程序產(chǎn)品具有一組(例如至少一個(gè))程序模塊,這些程序模塊被配置以執(zhí)行本申請(qǐng)各實(shí)施例的功能。

具有一組(至少一個(gè))程序模塊420的程序/實(shí)用工具400,可以存儲(chǔ)在例如存儲(chǔ)器280中,這樣的程序模塊420包括——但不限于——操作系統(tǒng)、一個(gè)或者多個(gè)應(yīng)用程序、其它程序模塊以及程序數(shù)據(jù),這些示例中的每一個(gè)或某種組合中可能包括網(wǎng)絡(luò)環(huán)境的實(shí)現(xiàn)。程序模塊420通常執(zhí)行本申請(qǐng)所描述的實(shí)施例中的功能和/或方法。

計(jì)算機(jī)設(shè)備120也可以與一個(gè)或多個(gè)外部設(shè)備140(例如鍵盤、指向設(shè)備、顯示器240等)通信,還可與一個(gè)或者多個(gè)使得用戶能與該計(jì)算機(jī)設(shè)備120交互的設(shè)備通信,和/或與使得該計(jì)算機(jī)設(shè)備120能與一個(gè)或多個(gè)其它計(jì)算設(shè)備進(jìn)行通信的任何設(shè)備(例如網(wǎng)卡,調(diào)制解調(diào)器等等)通信。這種通信可以通過(guò)輸入/輸出(i/o)接口220進(jìn)行。并且,計(jì)算機(jī)設(shè)備120還可以通過(guò)網(wǎng)絡(luò)適配器200與一個(gè)或者多個(gè)網(wǎng)絡(luò)(例如局域網(wǎng)(localareanetwork;以下簡(jiǎn)稱:lan),廣域網(wǎng)(wideareanetwork;以下簡(jiǎn)稱:wan)和/或公共網(wǎng)絡(luò),例如因特網(wǎng))通信。如圖14所示,網(wǎng)絡(luò)適配器200通過(guò)總線180與計(jì)算機(jī)設(shè)備120的其它模塊通信。應(yīng)當(dāng)明白,盡管圖14中未示出,可以結(jié)合計(jì)算機(jī)設(shè)備120使用其它硬件和/或軟件模塊,包括但不限于:微代碼、設(shè)備驅(qū)動(dòng)器、冗余處理單元、外部磁盤驅(qū)動(dòng)陣列、raid系統(tǒng)、磁帶驅(qū)動(dòng)器以及數(shù)據(jù)備份存儲(chǔ)系統(tǒng)等。

處理單元160通過(guò)運(yùn)行存儲(chǔ)在系統(tǒng)存儲(chǔ)器280中的程序,從而執(zhí)行各種功能應(yīng)用以及數(shù)據(jù)處理,例如實(shí)現(xiàn)本申請(qǐng)圖5~圖8所示實(shí)施例提供的文件上傳方法。

本實(shí)施例還提供一種非臨時(shí)性計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),當(dāng)上述存儲(chǔ)介質(zhì)中的計(jì)算機(jī)可執(zhí)行指令在由計(jì)算機(jī)處理器執(zhí)行時(shí),用于執(zhí)行本申請(qǐng)圖5~圖8所示實(shí)施例提供的文件上傳方法。

上述非臨時(shí)性計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)可以采用一個(gè)或多個(gè)計(jì)算機(jī)可讀的介質(zhì)的任意組合。計(jì)算機(jī)可讀介質(zhì)可以是計(jì)算機(jī)可讀信號(hào)介質(zhì)或者計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)。計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)例如可以是——但不限于——電、磁、光、電磁、紅外線、或半導(dǎo)體的系統(tǒng)、裝置或器件,或者任意以上的組合。計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)的更具體的例子(非窮舉的列表)包括:具有一個(gè)或多個(gè)導(dǎo)線的電連接、便攜式計(jì)算機(jī)磁盤、硬盤、隨機(jī)存取存儲(chǔ)器(ram)、只讀存儲(chǔ)器(readonlymemory;以下簡(jiǎn)稱:rom)、可擦式可編程只讀存儲(chǔ)器(erasableprogrammablereadonlymemory;以下簡(jiǎn)稱:eprom)或閃存、光纖、便攜式緊湊磁盤只讀存儲(chǔ)器(cd-rom)、光存儲(chǔ)器件、磁存儲(chǔ)器件、或者上述的任意合適的組合。在本文件中,計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)可以是任何包含或存儲(chǔ)程序的有形介質(zhì),該程序可以被指令執(zhí)行系統(tǒng)、裝置或者器件使用或者與其結(jié)合使用。

計(jì)算機(jī)可讀的信號(hào)介質(zhì)可以包括在基帶中或者作為載波一部分傳播的數(shù)據(jù)信號(hào),其中承載了計(jì)算機(jī)可讀的程序代碼。這種傳播的數(shù)據(jù)信號(hào)可以采用多種形式,包括——但不限于——電磁信號(hào)、光信號(hào)或上述的任意合適的組合。計(jì)算機(jī)可讀的信號(hào)介質(zhì)還可以是計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)以外的任何計(jì)算機(jī)可讀介質(zhì),該計(jì)算機(jī)可讀介質(zhì)可以發(fā)送、傳播或者傳輸用于由指令執(zhí)行系統(tǒng)、裝置或者器件使用或者與其結(jié)合使用的程序。

計(jì)算機(jī)可讀介質(zhì)上包含的程序代碼可以用任何適當(dāng)?shù)慕橘|(zhì)傳輸,包括——但不限于——無(wú)線、電線、光纜、rf等等,或者上述的任意合適的組合。

可以以一種或多種程序設(shè)計(jì)語(yǔ)言或其組合來(lái)編寫用于執(zhí)行本申請(qǐng)操作的計(jì)算機(jī)程序代碼,所述程序設(shè)計(jì)語(yǔ)言包括面向?qū)ο蟮某绦蛟O(shè)計(jì)語(yǔ)言—諸如java、smalltalk、c++,還包括常規(guī)的過(guò)程式程序設(shè)計(jì)語(yǔ)言—諸如“c”語(yǔ)言或類似的程序設(shè)計(jì)語(yǔ)言。程序代碼可以完全地在用戶計(jì)算機(jī)上執(zhí)行、部分地在用戶計(jì)算機(jī)上執(zhí)行、作為一個(gè)獨(dú)立的軟件包執(zhí)行、部分在用戶計(jì)算機(jī)上部分在遠(yuǎn)程計(jì)算機(jī)上執(zhí)行、或者完全在遠(yuǎn)程計(jì)算機(jī)或服務(wù)器上執(zhí)行。在涉及遠(yuǎn)程計(jì)算機(jī)的情形中,遠(yuǎn)程計(jì)算機(jī)可以通過(guò)任意種類的網(wǎng)絡(luò)——包括局域網(wǎng)(localareanetwork;以下簡(jiǎn)稱:lan)或廣域網(wǎng)(wideareanetwork;以下簡(jiǎn)稱:wan)連接到用戶計(jì)算機(jī),或者,可以連接到外部計(jì)算機(jī)(例如利用因特網(wǎng)服務(wù)提供商來(lái)通過(guò)因特網(wǎng)連接)。

需要說(shuō)明的是,在本申請(qǐng)的描述中,術(shù)語(yǔ)“第一”、“第二”等僅用于描述目的,而不能理解為指示或暗示相對(duì)重要性。此外,在本申請(qǐng)的描述中,除非另有說(shuō)明,“多個(gè)”的含義是兩個(gè)或兩個(gè)以上。

流程圖中或在此以其他方式描述的任何過(guò)程或方法描述可以被理解為,表示包括一個(gè)或更多個(gè)用于實(shí)現(xiàn)特定邏輯功能或過(guò)程的步驟的可執(zhí)行指令的代碼的模塊、片段或部分,并且本申請(qǐng)的優(yōu)選實(shí)施方式的范圍包括另外的實(shí)現(xiàn),其中可以不按所示出或討論的順序,包括根據(jù)所涉及的功能按基本同時(shí)的方式或按相反的順序,來(lái)執(zhí)行功能,這應(yīng)被本申請(qǐng)的實(shí)施例所屬技術(shù)領(lǐng)域的技術(shù)人員所理解。

應(yīng)當(dāng)理解,本申請(qǐng)的各部分可以用硬件、軟件、固件或它們的組合來(lái)實(shí)現(xiàn)。在上述實(shí)施方式中,多個(gè)步驟或方法可以用存儲(chǔ)在存儲(chǔ)器中且由合適的指令執(zhí)行系統(tǒng)執(zhí)行的軟件或固件來(lái)實(shí)現(xiàn)。例如,如果用硬件來(lái)實(shí)現(xiàn),和在另一實(shí)施方式中一樣,可用本領(lǐng)域公知的下列技術(shù)中的任一項(xiàng)或他們的組合來(lái)實(shí)現(xiàn):具有用于對(duì)數(shù)據(jù)信號(hào)實(shí)現(xiàn)邏輯功能的邏輯門電路的離散邏輯電路,具有合適的組合邏輯門電路的專用集成電路,可編程門陣列(programmablegatearray;以下簡(jiǎn)稱:pga),現(xiàn)場(chǎng)可編程門陣列(fieldprogrammablegatearray;以下簡(jiǎn)稱:fpga)等。

本技術(shù)領(lǐng)域的普通技術(shù)人員可以理解實(shí)現(xiàn)上述實(shí)施例方法攜帶的全部或部分步驟是可以通過(guò)程序來(lái)指令相關(guān)的硬件完成,所述的程序可以存儲(chǔ)于一種計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)中,該程序在執(zhí)行時(shí),包括方法實(shí)施例的步驟之一或其組合。

此外,本申請(qǐng)各個(gè)實(shí)施例中的各功能模塊可以集成在一個(gè)處理模塊中,也可以是各個(gè)模塊單獨(dú)物理存在,也可以兩個(gè)或兩個(gè)以上模塊集成在一個(gè)模塊中。上述集成的模塊既可以采用硬件的形式實(shí)現(xiàn),也可以采用軟件功能模塊的形式實(shí)現(xiàn)。所述集成的模塊如果以軟件功能模塊的形式實(shí)現(xiàn)并作為獨(dú)立的產(chǎn)品銷售或使用時(shí),也可以存儲(chǔ)在一個(gè)計(jì)算機(jī)可讀取存儲(chǔ)介質(zhì)中。

上述提到的存儲(chǔ)介質(zhì)可以是只讀存儲(chǔ)器,磁盤或光盤等。

在本說(shuō)明書的描述中,參考術(shù)語(yǔ)“一個(gè)實(shí)施例”、“一些實(shí)施例”、“示例”、“具體示例”、或“一些示例”等的描述意指結(jié)合該實(shí)施例或示例描述的具體特征、結(jié)構(gòu)、材料或者特點(diǎn)包含于本申請(qǐng)的至少一個(gè)實(shí)施例或示例中。在本說(shuō)明書中,對(duì)上述術(shù)語(yǔ)的示意性表述不一定指的是相同的實(shí)施例或示例。而且,描述的具體特征、結(jié)構(gòu)、材料或者特點(diǎn)可以在任何的一個(gè)或多個(gè)實(shí)施例或示例中以合適的方式結(jié)合。

盡管上面已經(jīng)示出和描述了本申請(qǐng)的實(shí)施例,可以理解的是,上述實(shí)施例是示例性的,不能理解為對(duì)本申請(qǐng)的限制,本領(lǐng)域的普通技術(shù)人員在本申請(qǐng)的范圍內(nèi)可以對(duì)上述實(shí)施例進(jìn)行變化、修改、替換和變型。

當(dāng)前第1頁(yè)1 2 
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1