新四季網

一種基於ftp協議的同步上傳與下載文件的方法

2023-05-22 09:28:01 3

專利名稱:一種基於ftp協議的同步上傳與下載文件的方法
技術領域:
本發明涉及一種文件傳輸方法,特別地,涉及一種基於FTP協議 的同步上傳與下載文件的方法。
背景技術:
隨著社會科技與經濟的飛速發展,網絡化的信息交換已經成為生 活工作中的 一 部分,而網絡信息交換最常用的方法將是以文件方式傳 輸這些信息,網絡文件傳輸的方法有多種,其中最常見的有FTP的工 具、P2P類的工具、或郵件技術的工具等等。
FTP的工具可以將文件傳輸到一臺伺服器上,然後另外一個用戶 通過FTP軟體再從伺服器上把文件下載下來,而這個過程出現的問題 為只有上傳文件的用戶需要把文件上傳完畢,另外 一個用戶才能下 載。FTP的主要作用,就是讓用戶連接上一個遠程計算機(這些計算 機上運行著FTP伺服器程序)察看遠程計算機有哪些文件,然後把文 件從遠程計算機上拷到本地計算機,或把本地計算機的文件送到遠程 計算機去;標準的FTP協議在傳輸文件的過程中必須把 一個文件傳輸 完成,其他客戶端才能下載。
另外,對於P2P類的工具可以完成直接把一個文件傳輸到另外一 臺終端用戶的機器上的功能,但該工具需要兩個用戶同時在線,並且 由於其傳輸過程是點對點進行的,因此不需要伺服器,所以無服務端 記錄。
總之,本領域技術人員需要解決的問題就是,在FTP伺服器上, 如何迅速並同步的上傳和下載文件,且能夠保證在上傳過程中減少下 載端的等待時間
發明內容
本發明的目的是提供一種能夠在上傳過程中減少下載端的等待
時間,並能夠同步的上傳和下載文件的基於FTP協議的同步上傳與下 載文件的方法。
為達到上述目的,本發明公開了 一種基於FTP協議的同步上傳與 下載文件的方法,該方法包括 獲取需要上傳的壓縮文件; 拆分所述文件為N個子文件,其中N大於等於2; 上傳所述子文件到FTP伺服器;
在FI'P伺服器上下載所述子文件,相對應地將所有的子文件組合
為原壓縮文件。
進一步地,所述FTP伺服器設置在計算機上;
進一步地,釆用windows RAR拆分所述需要上傳的壓縮文件;
進一步地,通過改變FsplitSize常量的值對應地設置子文件的個
數N;
為達到上述目的,本發明還公開了一種本基於FTP協議的上傳 文件的方法,該方法包括 獲取需要上傳的壓縮文件; 拆分所述文件為N個子文件,其中N大於等於2; 上傳所述子文件到FTP伺服器。
為達到上述目的,本發明還公開了一種基於FTP協議的下載文 件的方法,該方法包括
在FTP伺服器上獲取需要下載的文件;
下載所述文件對應的子文件;
將下載的子文件組合為原壓縮文件。與現有技術相比,本發明具有以下優點
當需要通過FTP傳輸一個大文件時,首先對文件進行壓縮,再進 行拆分,傳輸拆分後的子文件,從而有效地解決了在傳輸大文件過程 中,下載方需要等待傳輸完成後才能下載的問題。
即在本發明中將壓縮函數和拆分函數結合,將需要上傳的文件在 壓縮的同時拆分為對應的子文件,並將該子文件同步上傳,同時在遠 程訪問的FTP伺服器的另一端可以實現同步下載相對應的子文件,將 下—載後的子文件進行組合,進而獲得所需要的文件;
本發明可以實現多個用戶同時下載子文件,並且子文件的個數和 大小可以依據使用者進行設定,充分滿足了使用者的需求,減少了在 同步下載過程中的等待時間,實現了文件的快速傳輸。


圖1為本發明的基於FTP協議文件上傳流程示意圖2為本發明的基於FTP協議文件同步下載的流程示意圖3為本發明中的 一種實施例中設置子文件大小的示意圖。
具體實施例方式
為使本發明的上述目的、特徵和優點能夠更加明顯易懂,下面結 合附圖和具體實施方式
對本發明作進一步詳細的說明。
本發明的核心構思在於,將拆分函數應用於文件傳輸的過程中, 在壓縮文件的同時將所述文件進行拆分,在傳輸過程中實現上傳文 件的同時,在FTP伺服器的另一端,多個用戶同步下載所述子文件, 並自動將所述子文件組合為原文件。
本發明的主要步驟為第一步獲取需要上傳的壓縮文件;
第二步拆分所述文件為N個子文件,其中N大於等於2;
第三步上傳所述子文件到FTP伺服器;FTP伺服器設置在本地 的計算機上或遠程訪問的計算機上;
第四步在FTP伺服器上下載所述子文件,相對應的將所有的子文件組合為原壓縮文件。
圖l所示為本發明的基於FTP協議文件上傳流程示意圖,其中文 件上傳的主要步驟包括
步驟A1:啟動上傳的程序;
步驟A2:創建上傳實例,或打開現有的需要上傳的實例; 步驟A3:生成上傳列表;
步驟A4:文件校驗,計算大文件和拆分後的小文件的MD5碼, 即取文件MD5和複製文件到臨時文件夾;
步驟A5:壓縮文件;本實施例中使用的壓縮文件的函數為(本 程序使用Delphi2006編譯參數SourceFile為源壓縮文件名,TargetFile
為壓縮後目標文件名;) 〃壓縮函數
procedure TZipper.ExecZipFile(SourceFile: WideString; TargetFile: WideString); begin try
Zipper.FilesList.Add(SourceFile); Zipper.ZipName := TargetFile; Zipper.ReplaceReadOnly := true; Zippcr.Zip; except
on E: Exception do begin
FZipResult := FALSE; AddLog(E.ClassName + '|' + E.Message); end;
6end; end;
步驟A6:拆分文件,釆用windows RAR將所述需要上傳的壓縮 文件進行拆分;當然,拆分文件過程中,可以通過改變FsplitSize常 量的值對應設置子文件的個數N,如圖3所示設置子文件大小的界面, 即選擇需要的N的個數;其中拆分的子文件在同一個原壓縮文件的 壓縮包裡,並沒有分開許多單個的壓縮包;
本實施例中對應上述壓縮函數使用的拆分文件的函數為(本程 序使用Delphi2006編譯參數SourceFile為源壓縮文件名,TargetFile 為壓縮後目標文件名;)
〃拆分函數
procedure TSplitter.Execute;
var
FStream, TempStream: TFileStream; FileNum: Integer; RestSize, i: Integer; TempFileName: WideString; begin try
FSplitResult := True;
FStream := TFileStream.Create(FSrcFile, fmOpenRead); try
FileNum := FStream.Size div FSplitSize; RestSize := FStream.Size - FSplitSize * FileNum; for i :=_ to FileNum do begin
if Globallnfo.CancelOp then Break;
TempFileName := FTarPath + FSptFileName + IntToStr(i) + FileExt; TempStream := TFileStream.Create(TempFileName, fmCreate);
if r,ResultListnil then
FResultList.Add(TempFileName);try
Temp Stream. CopyFrom(F Stream, F Split S ize);
UpdateProgressStatue(FileNum, i); finally
TempStream.Free; end; end;
if 0 < RestSize then begin
TempFileName := FTarPath + FSptFileName + IntToStr(FileN腿+l) + FileExt;
TcmpStream := TFileStream.Create(TempFileName, fmCreate);
if FResultListonil then
FResultList.Add(TempFileName);
try
TempStream.CopyFrom(FStream, RestSize); finally
TempStream.Free; end; end; except
on E: Exception do begin
AddLog(E,ClassName + '|' + E.Message); FStream.Free; FSplitResult False; Terminate; end;
end;
F Stream. Free; finally
Terminate; end; end;
8步驟A7:訪問TPM (服務端文件處理接口 )文件存在性接口, 生成子文件列表;該處的訪問接口主要是為續傳使用,即當傳輸失敗 或傳輸中止時,可以在進行續傳的過程中使用該處的TPM文件;
步驟A8:上傳子文件,在此過程中,若上傳失敗,可以自動重 試三次,若第四次上傳仍然失敗,彈出一個提示是否重傳的界面,使 用者可以選擇重試或中止該文件的傳輸;上傳過程中依據默認的次序 進行各個子文件的傳輸,或者可以由使用者設置程序選擇上傳子文件 的次序;
步驟A9:當有單個的子文件上傳成功時,需要註冊並校驗文件, 即訪問File manager接口;當校驗成功,即執行步驟-步驟A10第一個 子文件上傳成功,若校驗錯誤,提示對話框出現,使用者可以選擇重 試,也可以中止該文件的傳輸;
步驟A10:上傳程序通過在TPM上註冊文件,即訪問TPM接口來 判斷上傳的文件是否為重複傳輸的子文件,若是,重新傳輸其它的子 文件,若否,該文件傳輸完成;
步驟A11:子文件傳輸完畢,即單次上傳任務完成,使用者可以 根據自己的需要刪除臨時文件或保存臨時文件,結束整個文件的傳 輸。
相應的,要上傳一個IG的DOC文件;第一步上傳端先把文件 進行壓縮(若經判斷為壓縮文件,則不再進行二次壓縮);第二步 再把文件拆分成1024個1M的子文件;第三步通過FTP協議或HTTP
協議將文件上傳到伺服器上。
圖2所示為本發明的基於FTP協議文件同步下載的流程示意圖; 該下載端可以是遠程訪問FTP協議的各個使用者,或本地計算機的各 個使用者,其同步下載的主要步驟如下
步驟B1:啟動FTP的下載程序;步驟B2:創建下載實例,若下載實例存在,直接發送COPYDATA 消息,生成任務列表;
步驟B3:獲取下載列表,即訪問TPM文件下載列表接口; 步驟B4:生成文件下載列表,即訪問File Manager文件存在性接
P ;
步驟B5:下載子文件;若下載成功執行下一步驟,否則默認重複 下載步驟三次;當子文件仍未下載成功時,提示是否重試的界面彈出, 使用者可以選擇結東下載程序或重複嘗試下載子文件的步驟;
步驟B6:將下載的子文件組合為原文件;
步驟B7:對組合的文件進行校驗;
步驟B8:將壓縮的原文件解壓到臨時文件夾;
步驟B9:複製文件到目標文件夾,結東下載過程。
需要說明的是,在本實施例的下載子文件過程中,如果子文件未 上傳完成,等待探測FTP伺服器的子文件上傳完成,繼續下載。
本發明解決了在文件上傳過程,需要全部上傳完畢後能才下載的 問題,大大節約下載端用戶的等待時間;也就是說下載端判斷服務上 是否有文件,開始下載,上載端每上傳成功一個子文件,下載端就可 以即時下載,大大節約了等待時間。
本實施例中的程序是用Borland Ddphi開發的,所述子文件設置 默認值為1M,在程序中通過控制FsplitSize常量的值來控制子文件的 大小。
以上實施方式僅用於說明本發明,而並非對本發明的限制,有關 技術領域的普通技術人員,在不脫離本發明的精神和範圍的情況下, 還可以做出各種變化和變型,因此所有等同的技術方案也屬於本發明 的範疇,本發明的專利保護範圍應由權利要求限定。
權利要求
1、一種基於FTP協議的同步上傳與下載文件的方法,其特徵在於,包括獲取需要上傳的壓縮文件;拆分所述文件為N個子文件,其中N大於等於2;上傳所述子文件到FTP伺服器;在FTP伺服器上下載所述子文件,相對應地將所有的子文件組合為原壓縮文件。
2、 如權利要求l所述的方法,其特徵在於,所述FTP伺服器設 置在計算機上。
3、 如權利要求l所述的方法,其特徵在於,釆用windowsRAR拆分所述需要上傳的壓縮文件。
4、 如權利要求3所述的方法,其特徵在於,通過改變FsplitSize 常量的值對應地設置子文件的個數N。
5、 一種基於FTP協議的上傳文件的方法,其特徵在於,包括獲取需要上傳的壓縮文件; 拆分所述文件為N個子文件,其中N大於等於2; 上傳所述子文件到FTP伺服器。
6、 一種基於FTP協議的下載文件的方法,其特徵在於,包括 在FTP伺服器上獲取需要下載的文件; 下載所述文件對應的子文件;將下載的子文件組合為原壓縮文件。
全文摘要
本發明涉及一種基於FTP協議的同步上傳與下載文件的方法,包括獲取需要上傳的壓縮文件;拆分所述文件為N個子文件,其中N大於等於2;上傳所述子文件給FTP伺服器;在FTP伺服器上下載所述子文件,相對應的將所有的子文件組合為原壓縮文件。在上傳端上傳的過程中,如果每成功上傳一個子文件,下載端都可以進行下載;當上傳較大文件時,所述方法能夠節約下載端的等待時間。
文檔編號H04L29/06GK101577730SQ20091007669
公開日2009年11月11日 申請日期2009年1月15日 優先權日2009年1月15日
發明者何戰濤 申請人:傳神聯合(北京)信息技術有限公司

同类文章

一種新型多功能組合攝影箱的製作方法

一種新型多功能組合攝影箱的製作方法【專利摘要】本實用新型公開了一種新型多功能組合攝影箱,包括敞開式箱體和前攝影蓋,在箱體頂部設有移動式光源盒,在箱體底部設有LED脫影板,LED脫影板放置在底板上;移動式光源盒包括上蓋,上蓋內設有光源,上蓋部設有磨沙透光片,磨沙透光片將光源封閉在上蓋內;所述LED脫影

壓縮模式圖樣重疊檢測方法與裝置與流程

本發明涉及通信領域,特別涉及一種壓縮模式圖樣重疊檢測方法與裝置。背景技術:在寬帶碼分多址(WCDMA,WidebandCodeDivisionMultipleAccess)系統頻分復用(FDD,FrequencyDivisionDuplex)模式下,為了進行異頻硬切換、FDD到時分復用(TDD,Ti

個性化檯曆的製作方法

專利名稱::個性化檯曆的製作方法技術領域::本實用新型涉及一種檯曆,尤其涉及一種既顯示月曆、又能插入照片的個性化檯曆,屬於生活文化藝術用品領域。背景技術::公知的立式檯曆每頁皆由月曆和畫面兩部分構成,這兩部分都是事先印刷好,固定而不能更換的。畫面或為風景,或為模特、明星。功能單一局限性較大。特別是畫

一種實現縮放的視頻解碼方法

專利名稱:一種實現縮放的視頻解碼方法技術領域:本發明涉及視頻信號處理領域,特別是一種實現縮放的視頻解碼方法。背景技術: Mpeg標準是由運動圖像專家組(Moving Picture Expert Group,MPEG)開發的用於視頻和音頻壓縮的一系列演進的標準。按照Mpeg標準,視頻圖像壓縮編碼後包

基於加熱模壓的纖維增強PBT複合材料成型工藝的製作方法

本發明涉及一種基於加熱模壓的纖維增強pbt複合材料成型工藝。背景技術:熱塑性複合材料與傳統熱固性複合材料相比其具有較好的韌性和抗衝擊性能,此外其還具有可回收利用等優點。熱塑性塑料在液態時流動能力差,使得其與纖維結合浸潤困難。環狀對苯二甲酸丁二醇酯(cbt)是一種環狀預聚物,該材料力學性能差不適合做纖

一種pe滾塑儲槽的製作方法

專利名稱:一種pe滾塑儲槽的製作方法技術領域:一種PE滾塑儲槽一、 技術領域 本實用新型涉及一種PE滾塑儲槽,主要用於化工、染料、醫藥、農藥、冶金、稀土、機械、電子、電力、環保、紡織、釀造、釀造、食品、給水、排水等行業儲存液體使用。二、 背景技術 目前,化工液體耐腐蝕貯運設備,普遍使用傳統的玻璃鋼容

釘的製作方法

專利名稱:釘的製作方法技術領域:本實用新型涉及一種釘,尤其涉及一種可提供方便拔除的鐵(鋼)釘。背景技術:考慮到廢木材回收後再加工利用作業的方便性與安全性,根據環保規定,廢木材的回收是必須將釘於廢木材上的鐵(鋼)釘拔除。如圖1、圖2所示,目前用以釘入木材的鐵(鋼)釘10主要是在一釘體11的一端形成一尖

直流氧噴裝置的製作方法

專利名稱:直流氧噴裝置的製作方法技術領域:本實用新型涉及ー種醫療器械,具體地說是ー種直流氧噴裝置。背景技術:臨床上的放療過程極易造成患者的局部皮膚損傷和炎症,被稱為「放射性皮炎」。目前對於放射性皮炎的主要治療措施是塗抹藥膏,而放射性皮炎患者多伴有局部疼痛,對於止痛,多是通過ロ服或靜脈注射進行止痛治療

新型熱網閥門操作手輪的製作方法

專利名稱:新型熱網閥門操作手輪的製作方法技術領域:新型熱網閥門操作手輪技術領域:本實用新型涉及一種新型熱網閥門操作手輪,屬於機械領域。背景技術::閥門作為流體控制裝置應用廣泛,手輪傳動的閥門使用比例佔90%以上。國家標準中提及手輪所起作用為傳動功能,不作為閥門的運輸、起吊裝置,不承受軸向力。現有閥門

用來自動讀取管狀容器所載識別碼的裝置的製作方法

專利名稱:用來自動讀取管狀容器所載識別碼的裝置的製作方法背景技術:1-本發明所屬領域本發明涉及一種用來自動讀取管狀容器所載識別碼的裝置,其中的管狀容器被放在循環於配送鏈上的文檔匣或託架裝置中。本發明特別適用於,然而並非僅僅專用於,對引入自動分析系統的血液樣本試管之類的自動識別。本發明還涉及專為實現讀