asp.net TIDFtp用法介紹
2024-07-10 12:41:50
供稿:網友
1 連接遠程服務器
procedure Connect(AAutoLogin: boolean; const ATimeout: Integer);
2 改變目錄
procedure ChangeDir(const ADirName: string);
3 下載
procedure Get(const ASourceFile: string; ADest: TStream; AResume: Boolean); overload;
procedure Get(const ASourceFile: string; const ADestFile: string; const ACanOverwrite: boolean; AResume: Boolean); overload;
4 上傳
procedure Put(const ASource: TStream; const ADestFile: string; const AAppend: boolean); overload;
procedure Put(const ASourceFile: string; const ADestFile: string; const AAppend: boolean); overload;
5 刪除
procedure Delete(const AFilename: string);
判斷是否連接
if IdFTP1.Connected then
begin
...........
end;
引用別人一下,做為自己以后筆記
現在很多應用都需要上傳與下載大型文件,通過HTTP方式上傳大文件有一定的局限性。幸好FTP作為一個非常老而且非常成熟的協議可以高效穩定地完成大文件的上傳下載,并且可以完美地實現續傳。就拿我寫的電影服務器管理端程序來說,各種方案比較后,發現使用FTP可以完美地實現要求。但是要通過WinSocket庫實現FTP比較麻煩,幸好有Indy--一個包裝了大多數網絡協議的組件包。
通過Indy,程序設計人員可以通過阻塞方式進行編程,可以拋開蹩腳的Winsocket異步模式,采用與Unix系統上等同的阻塞編程模式進行。這樣,程序員就可以很好的處理程序的運行流程。
下面,我們進入到Indy的TIdFtp世界。
1.控件的說明
使用Indy 9中的TIdFtp控件可以實現通過FTP方式進行文件的上傳與下載。
2.控件的具體使用
(1)控件屬性設置
默認屬性即可,與服務器連接直接相關的屬性如主機名與用戶等在建立連接時進行設定。需要設定的是RecvBufferSize和SendBufferSize兩屬性的值。另外需要根據要傳輸的文件類型指定TransferType屬性,而其他屬性按默認值設定即可。
RecvBufferSize說明(默認值為8192字節):該屬性為整型變量,用于指定連接所用的接受緩沖區大小。
SendBufferSize說明(默認值為32768字節):該屬性也為整型變量,用于指定連接所用的發送緩沖區的最大值。該屬性在WriteStream方法中時,可用于TStream指定要發送內容的塊數。如果要發送的內容大于本屬性值,則發送內容被分為多個塊發送。
TransferType說明(默認值為ftBinary):該屬性為TIdFTPTransferType型變量。用于指定傳輸內容是二進制文件(ftBinary )還是ASCII文件(ftASCII)。應用程序需要使用二進制方式傳輸可執行文件、壓縮文件和多媒體文件等;而使用ASCII方式傳輸文本或超文本等文本型數據。
(2)控件的事件響應
OnDisconnected響應:TNotifyEvent類,用于響應斷開(disconnect)事件。當Disconnect方法被調用用來關閉Socket的時候,觸發該響應。應用程序必須指定該事件響應的過程,以便對該斷開事件進行相應。