專利名稱:斷點上傳應用控制方法
技術領域:
本發(fā)明屬于網(wǎng)絡傳輸控制技術領域,具體涉及斷點上傳應用控制方法。
背景技術:
一般數(shù)據(jù)上傳需要將整個文件數(shù)據(jù)全部通過網(wǎng)絡上傳到服務器,服務器接收全部數(shù)據(jù)后才能進行持久化處理。在文件比較大、上傳時間長的情況下一旦發(fā)生誤操作、網(wǎng)絡中斷等問題,導致文件上傳不成功,文件必須重新上傳。斷點上傳是通過將客戶端文件拆分成多個小數(shù)據(jù)包,以數(shù)據(jù)包為單位向服務器上傳,當出現(xiàn)網(wǎng)絡中斷等意外情況時已經(jīng)上傳的數(shù)據(jù)包被服務器保存下來,下次可以從未保存的地方開始上傳。從而提高大文件的上傳效率。隨著網(wǎng)絡技術的普及,在網(wǎng)絡中交換信息,特別是文件成為人們使用網(wǎng)絡時一個重要信息交換方式。如文件的上傳、下載?,F(xiàn)有技術中被廣泛使用的下載工具有迅雷、網(wǎng)際快車、電驢等,并且這些下載工具普遍支持斷點下載,也就是說下載一個大文件的時候可以多次下載完成。斷點下載得到了廣泛的應用。上傳也可以實現(xiàn)斷點上傳功能,目前市面上實現(xiàn)斷點上傳功能的軟件并不多見。 現(xiàn)有的文件傳輸聊天工具如QQ、MSN等,主要功能是作為即時通訊工具使用,如果網(wǎng)絡中段,正在上傳文件就會消失,下次只能重新上傳。
發(fā)明內容
本發(fā)明的目的是為了解決文件在上傳過程中,遇到網(wǎng)絡中斷上傳文件就會消失的問題,本發(fā)明提供一種斷點上傳應用控制方法。該方法在WEB下實現(xiàn)大文件上傳,并實現(xiàn)了即使網(wǎng)絡中斷也能夠對已經(jīng)上傳的文件進行保存,待下次上傳時繼續(xù)上次的文件傳輸,達到斷點上傳的功能,提高了上傳效率。為了解決上述技術問題,本發(fā)明采用的技術方案斷點上傳應用控制方法,包括以下步驟,第1步,啟動上傳服務器;第2步,啟動上傳客戶端,WEB頁面添加Applet應用,在上傳客戶端上設置上傳服務器IP、上傳服務器中保存待上傳文件的路徑、待上傳文件是否MD5加密驗證、待上傳文件的文件類型、是否處理JS回調事件、上傳客戶端是否調用上傳服務器接口、設置沒有上傳完的文件名和文件路徑;第3步,上傳文件用戶打開瀏覽器,客戶端判斷用戶電腦是否安裝有JRE運行環(huán)境,如果沒有安裝JRE運行環(huán)境瀏覽器會自動下載JRE可執(zhí)行文件并安裝,JRE安裝成功后, 轉第4步;否則,直接轉第4步;第4步,下載Applet應用到上傳客戶端瀏覽器,并自動打開斷點上傳界面,上傳文件用戶選擇要上傳的文件,文件上傳客戶端將待上傳文件加入到Applet列表中;第5步,點擊上傳,文件上傳客戶端與上傳服務器建立連接,文件上傳客戶端將
3Applet列表中的第一個文件的文件信息傳遞給上傳服務器;第6步,上傳服務器接收上傳客戶端發(fā)送的待上傳文件的文件信息,上傳服務器判斷是否與該上傳客戶端第一次建立連接,若是,轉第7步;否則,轉第10步;第7步,判斷待上傳文件是否重復上傳,若是,計算出已上傳的文件與待上傳文件標識相同的文件的大小,并將其作為參數(shù)返回給上傳客戶端;否則,上傳服務器端返回上傳客戶端的參數(shù)值為0 ;第8步,上傳客戶端接收上傳服務器返回的參數(shù)值,判斷返回的參數(shù)值是否為0, 若是,將待上傳文件進行分包,發(fā)送起始文件數(shù)據(jù)包,轉第6步;否則,轉第9步;第9步,上傳客戶端將待上傳文件的大小與上傳服務器返回的參數(shù)值進行比較, 若待上傳文件的大于上傳服務器返回的參數(shù)值,找到待上傳文件的開始的字節(jié)處,然后從待上傳文件開始的字節(jié)處將待上傳文件的未上傳部分進行分包,轉第6步;若待上傳文件的文件大小等于上傳服務器返回的參數(shù)值,轉13步;第10步,根據(jù)文件標識在上傳服務器上傳文件保存路徑下查找是否存在待上傳文件,若否,在上傳服務器上創(chuàng)建目標文件,打開目標文件;否則,直接打開目標文件;第11步,根據(jù)上傳客戶端發(fā)送的數(shù)據(jù)包,設置文件輸入流,讀取該數(shù)據(jù)包開將數(shù)據(jù)包寫入到該目標文件,關閉文件;第12步,判斷發(fā)送的文件數(shù)據(jù)包是否是最后一個數(shù)據(jù)包,若是,轉第13步;否則, 上傳服務器返回參數(shù)值,該參數(shù)值為目標文件大小,轉第8步;第13步,判斷是否繼續(xù)進行其他文件的斷點傳輸,若是,將Applet列表中的已上傳文件后的第一個待上傳文件的文件信息傳遞給上傳服務器,轉第6步;否則,結束。
與現(xiàn)有技術相比,本發(fā)明的有益效果是·本發(fā)明提供的斷點上傳方法中文件上傳完全采用HTTP協(xié)議,用戶使用瀏覽器就可以上傳大文件到服務器(支持上傳超過IG的文件),上傳時有詳細的狀態(tài)顯示,比如上傳進度條顯示(包括單個文件進度);·本發(fā)明提供的上傳方法支持斷點上傳,當文件在上傳過程中網(wǎng)絡出現(xiàn)故障,或手動停止上傳,下次上傳時會進行文件續(xù)傳;·添加文件支持鼠標拖曳,支持Ctl+C Ctl+V ;·用戶可以通過設置IE事件回調機制來處理自定義JS事件,如上傳完成所處理的JS事件;·上傳客戶端可以動態(tài)設置上傳保存路徑,設置允許上傳文件類型;·上傳客戶端提供文件信息輸入輸出接口,該接口是為krvlet,方便用戶重寫接口,在服務器器獲得文件相關信息; 上傳客戶端支持MD5文件加密驗證,從而保證了上傳文件的唯一性(利用MD5文件加密驗證可以判斷文件兩個文件是否為同一文件);采用多線程機制保證上傳效率;·服務器文件保存路徑可以隨意指定,靈活變化,保存路徑支持網(wǎng)絡路徑; 服務器支持 Windows 2003Server/ffindows 2000Server/ffindowsNT/Unix/Linux 等操作系統(tǒng);、·實現(xiàn)在WEB頁面下對文件的斷點上傳;·人機交互界面友好。
圖1本發(fā)明的Applet運行圖;圖2本發(fā)明的上傳文件流程圖;圖3本發(fā)明的服務器界面示意圖;圖4本發(fā)明的上傳界面示意圖。
具體實施例方式由于是在TOB下實現(xiàn)文件上傳,所以采用Java現(xiàn)有的Applet技術將應用程序封裝成Applet嵌入網(wǎng)頁中,以實現(xiàn)在TOB頁面下上傳文件。用戶只要有瀏覽器便可實現(xiàn)大文件上傳功能且支持斷點上傳,Socket套節(jié)字實現(xiàn)了在客戶端與服務器之間有效控制字節(jié)流傳輸?shù)墓δ?;為了解決在服務器同一目錄下,不能有重復文件,本發(fā)明采用MD5加密將待上傳的文件形成密文,并將該密文作為待上傳文件的文件名保存在服務器用戶設置的目錄下,以達到在服務器用戶設置的目錄下不能有相同文件的目的,滿足同一文件不能重復上傳。由于本發(fā)明采用Applet開發(fā),最終上傳客戶端以組件的形式嵌入到網(wǎng)頁中,但是 Applet不能對本地文件進行操作。為了改變Java中的Applet的安全策略,采用了 Java的數(shù)字簽名改變Applet的安全策略,使Applet能夠對本地文件進行操作。本發(fā)明的上傳客戶端支持調用接口 JS客戶端回調函數(shù)、Servlet服務器端處理操作,因此,在文件上傳成功后,客戶端可以收到服務器反饋的提示信息,從而提高了人機交互性、易用性;本發(fā)明采用了多線程操作,從而提高了上傳速率。Java 現(xiàn)有 Applet 技術Applet可以翻譯為小應用程序,JavaApplet就是用Java語言編寫的小應用程序 Applet程序可以直接嵌入到網(wǎng)頁中,能夠在瀏覽器界面上完成Applet程序的功能。包含 Applet的網(wǎng)頁被稱為Java-powered頁,可以稱其為Java支持的網(wǎng)頁。當用戶訪問這樣的網(wǎng)頁時,Applet被下載到用戶的計算機上并自動運行,由于Applet是在用戶的計算機上運行的,因此它的運行速度不受網(wǎng)絡帶寬或者Modem存取速度的限制。在Java Applet中,可以實現(xiàn)圖形繪制、字體和顏色控制、動畫和聲音的插入、人機交互及網(wǎng)絡交流等功能。圖1 為Applet運行方式,上傳文件用戶打開瀏覽器,瀏覽器請求應用服務器下載Applet包到本地并嵌入到瀏覽器以實現(xiàn)Applet功能。Java socketJava socket通信通常也稱作“套接字”,用于描述IP地址和端口,是一個通信鏈的句柄。應用程序通常通過“套接字”向網(wǎng)絡發(fā)出請求或者應答網(wǎng)絡請求。Socket是支持 TCP/IP協(xié)議的網(wǎng)絡通信的基本操作單元。Socket是網(wǎng)絡通信過程中端點的抽象表示,包含進行網(wǎng)絡通信必須的五種信息連接使用的協(xié)議,本地主機的IP地址,本地進程的協(xié)議端口,遠地主機的IP地址,遠地進程的協(xié)議端口。應用層通過傳輸層進行數(shù)據(jù)通信時,TCP會遇到同時為多個應用程序進程提供并發(fā)服務的問題。多個TCP連接或多個應用程序進程可能需要通過同一個TCP協(xié)議端口傳輸數(shù)據(jù)。為了區(qū)別不同的應用程序進程和連接,許多計算機操作系統(tǒng)為應用程序與TCP/IP協(xié)
5議交互提供了套接字(Socket)接口。應用層可以和傳輸層通過Socket接口,區(qū)分來自不同應用程序進程或網(wǎng)絡連接的通信,實現(xiàn)數(shù)據(jù)傳輸?shù)牟l(fā)服務。服務器,使用krver Socket監(jiān)聽文件上傳客戶端指定的端口,端口可以隨意指定 (建議使用大于IOM的端口),等待客戶端連接請求,客戶端連接后,Socket會話產生;在完成Socket會話后,關閉連接??蛻舳?,使用Java socket通信對網(wǎng)絡上某一個服務器的某一個端口發(fā)出連接請求,一旦連接成功,打開會話;會話完成后,關閉Socket。客戶端不需要指定打開的端口,通常臨時的、動態(tài)的分配一個端口。MD5文件加密技術本發(fā)明使用MD5技術對待上傳的文件進行加密,加密后形成的密文作為待上傳文件的文件名。由于相同文件加密后所得文件名相同,因此,可通過與上傳服務器設置的目錄下存儲的已上傳文件的文件名進行比對,從而達到同一文件不能重復上傳的目的。Applet執(zhí)行JS回調事件當文件上傳完畢后,客戶端瀏覽器頁面會自動執(zhí)行所指定的JS回調事件,該JS回調事件可以返回上傳結果。Applet提供服務器的Servlet接口Servlet是標準的服務器端應用程序,用來完成B/S架構下,客戶端請求的響應處理,由于是服務器程序,當文件上傳前或者上傳成功后可以通知所部署的應用程序文件 (如WEB網(wǎng)頁等)的上傳情況。P2P、P2S 技術P2P技術(即點對點技術)已經(jīng)延伸到幾乎所有的網(wǎng)絡應用領域,如分布式科學計算、文件共享、流媒體直播與點播、語音通信及在線游戲支撐平臺等方面。P2P技術已經(jīng)開始將重心轉入到覆蓋層網(wǎng)絡的節(jié)點延時聚集研究、覆蓋網(wǎng)之間優(yōu)化研究、P2P支撐平臺研究以及P2P安全研究等方面。P2P技術屬于覆蓋層網(wǎng)絡(Overlay Network)的范疇,是相對于客戶機/服務器 (C/S)模式來說的一種網(wǎng)絡信息交換方式。P2S(即點對服務器技術),是最經(jīng)典的一種文件傳輸協(xié)議。“點”即網(wǎng)絡節(jié)點或終端,通??梢岳斫鉃橛脩粲嬎銠C。P2S協(xié)議又分HTTP(超文本傳輸協(xié)議)與FTP(文件傳輸協(xié)議)兩種類型。IE自帶的下載軟件采用的是P2S技術。網(wǎng)際快車(FlashGet)是國內主要的P2S型下載軟件。Java數(shù)字簽名采用Java數(shù)字簽名技術可以實現(xiàn)對簽名者身份的認證和在網(wǎng)絡中傳輸?shù)臄?shù)據(jù)的安全性。Java2發(fā)布后,Java的安全體系結構發(fā)生了根本的改進,對于終端用戶而言,它可以保護文件和網(wǎng)絡傳輸數(shù)據(jù)不被惡意的程序或病毒感染和破壞,鑒別代碼提供者的身份。 對于開發(fā)者而言,通過使用API方法,能夠將安全性功能集成到應用程序中,因為API的體系結構能夠定義和集成對特定的資源的使用權限、加密、安全性管理、策略管理,并提供了一些類來管理公鑰/密鑰對、信任用戶群的公鑰證書。同時系統(tǒng)管理員、開發(fā)者和用戶可以使用Java提供的工具管理鑰匙庫,在JAR文件中生成數(shù)字簽名、數(shù)字簽名的安全性檢測、創(chuàng)建和修改Java的安全策略文件。上傳客戶端以P2S技術實現(xiàn)上傳功能,可以采用多個上傳客戶端同時上傳同一文件的不同數(shù)據(jù)包,并將其保存在上傳服務器的同一目錄下。參數(shù)描述
權利要求
1.斷點上傳應用控制方法,其特征在于包括以下步驟, 第1步,啟動上傳服務器;第2步,啟動上傳客戶端,WEB頁面添加Applet應用,在上傳客戶端上設置上傳服務器 IP、上傳服務器中保存待上傳文件的路徑、待上傳文件是否MD5加密驗證、待上傳文件的文件類型、是否處理JS回調事件、上傳客戶端是否調用上傳服務器接口、設置沒有上傳完的文件名和文件路徑;第3步,上傳文件用戶打開瀏覽器,客戶端判斷用戶電腦是否安裝有JRE運行環(huán)境,如果沒有安裝JRE運行環(huán)境瀏覽器會自動下載JRE可執(zhí)行文件并安裝,JRE安裝成功后,轉第 4步;否則,直接轉第4步;第4步,下載Applet應用到上傳客戶端瀏覽器,并自動打開斷點上傳界面,上傳文件用戶選擇要上傳的文件,文件上傳客戶端將待上傳文件加入到Applet列表中;第5步,點擊上傳,文件上傳客戶端與上傳服務器建立連接,文件上傳客戶端將Applet 列表中的第一個文件的文件信息傳遞給上傳服務器;第6步,上傳服務器接收上傳客戶端發(fā)送的待上傳文件的文件信息,上傳服務器判斷是否與該上傳客戶端第一次建立連接,若是,轉第7步;否則,轉第10步;第7步,判斷待上傳文件是否重復上傳,若是,計算出已上傳的文件與待上傳文件標識相同的文件的大小,并將其作為參數(shù)返回給上傳客戶端;否則,上傳服務器端返回上傳客戶端的參數(shù)值為0 ;第8步,上傳客戶端接收上傳服務器返回的參數(shù)值,判斷返回的參數(shù)值是否為0,若是, 將待上傳文件進行分包,發(fā)送起始文件數(shù)據(jù)包,轉第6步;否則,轉第9步;第9步,上傳客戶端將待上傳文件的大小與上傳服務器返回的參數(shù)值進行比較,若待上傳文件的大于上傳服務器返回的參數(shù)值,找到待上傳文件的開始的字節(jié)處,然后從待上傳文件開始的字節(jié)處將待上傳文件的未上傳部分進行分包,轉第6步;若待上傳文件的文件大小等于上傳服務器返回的參數(shù)值,轉13步;第10步,根據(jù)文件標識在上傳服務器上傳文件保存路徑下查找是否存在待上傳文件, 若否,在上傳服務器上創(chuàng)建目標文件,打開目標文件;否則,直接打開目標文件;第11步,根據(jù)上傳客戶端發(fā)送的數(shù)據(jù)包,設置文件輸入流,讀取該數(shù)據(jù)包并將數(shù)據(jù)包寫入到該目標文件,關閉文件;第12步,判斷發(fā)送的文件數(shù)據(jù)包是否是最后一個數(shù)據(jù)包,若是,轉第13步;否則,上傳服務器返回參數(shù)值,該參數(shù)值為目標文件大小,轉第8步;第13步,判斷是否繼續(xù)進行其他文件的斷點傳輸,若是,將Applet列表中的已上傳文件后的第一個待上傳文件的文件信息傳遞給上傳服務器,轉第6步;否則,結束。
全文摘要
本發(fā)明屬于網(wǎng)絡傳輸控制技術領域,目的是為了解決文件在上傳過程中,遇到網(wǎng)絡中斷上傳文件就會消失的問題。在文件上傳過程時,用戶打開瀏覽器,用戶可以設置相關參數(shù)。WEB頁面調用上傳客戶端,選擇待上傳文件并進行上傳,當出現(xiàn)網(wǎng)絡中斷等意外情況時已經(jīng)上傳的數(shù)據(jù)包被服務器保存下來,下次上傳時從中斷的文件位置開始傳輸,實現(xiàn)斷點上傳的目的。實現(xiàn)在WEB頁面下對文件的斷點上傳;人機交互界面友好。
文檔編號H04L29/06GK102497395SQ20111038946
公開日2012年6月13日 申請日期2011年11月30日 優(yōu)先權日2011年11月30日
發(fā)明者翟磊, 高宗 申請人:北京京航計算通訊研究所