Delphi - Indy TIdFTP控件實現文件的上傳和下載


FTP信息保存和獲取

我們在做FTP相關開發時,為方便后續FTP切換,一般先把FTP賬戶信息保存到數據庫表中,在使用時再通過Query獲取出來。

一般通過如下方式獲取到FTP相關信息,代碼如下:

 1   //獲取FTP信息
 2   with qTmp do
 3   begin
 4     Close;
 5     SQL.Clear;
 6     SQL.Text := 'SELECT * FROM SYS_FTP_INFO WHERE NAME = ''Test'' ';
 7     Open;
 8     SYS_FTPUSER := FieldByName('USERNAME').AsString;
 9     SYS_FTPPASSWORD := FieldByName('PASSWORD').AsString;
10     SYS_FTPSERVER := FieldByName('IP').AsString;
11     SYS_FTPDIR := FieldByName('PATH').AsString;
12   end;

 

idFTP文件下載

下載這里主要用到Get函數,三個參數:

Param1:文件名稱(包含后綴名)

Param2:想要保存的路徑(最終文件保存位置的全路徑)

Param3:Ture/False 是否斷點續傳

一般操作代碼如下:

 1   try
 2     MsgDsp('開始獲取文件,請稍等!');
 3     with idFTP do
 4     begin
 5       if Connected then Disconnect;
 6       Username := SYS_FTPUSER;
 7       Password := SYS_FTPPASSWORD;
 8       Host := SYS_FTPSERVER;
 9       Port := 21;
10       Connect;
11       ChangeDir(SYS_FTPDIR);
12       Get(FILENAME, 'C:\tmp\' + FILENAME, True);
13       if Connected then Disconnect;
14     end;
15     MsgDsp('Recipe文件獲取成功!')
16   except
17     on E: Exception do
18     begin
19       MsgDsp('文件獲取失敗,請聯系IT處理!錯誤信息:' + E.Message);
20       Abort;
21     end;
22   end;

 

idFTP 文件上傳

上傳這里主要用到Put函數,兩個參數:

Param1:需要上傳文件的全路徑

Param2:文件名稱(包含后綴名)

 

一般操作代碼如下:

 1   try
 2     MsgDsp('開始上傳文件,請稍等!');
 3     with idFTP do
 4     begin
 5       if Connected then Disconnect;
 6       Username := SYS_CLIENTFTPUSER;
 7       Password := SYS_CLIENTFTPPASSWORD;
 8       Host := SYS_CLIENTTPSERVER;
 9       Port := SYS_PORT;
10       Connect;
11       ChangeDir(SYS_CLIENTFTPDIR);
12       Put('C:\tmp\' + FILENAME, ExtractFileName(FILENAME));13       if Connected then Disconnect;
14     end;
15     MsgDsp('文件上傳成功!');
16
except 17 on E: Exception do 18 begin
19
MsgDsp('文件上傳失敗,請聯系IT確認!錯誤信息:' + E.Message); 20 Abort; 21 end; 22 end;

 

  作者:Jeremy.Wu
  出處:https://www.cnblogs.com/jeremywucnblog/
  本文版權歸作者和博客園共有,歡迎轉載,但未經作者同意必須保留此段聲明,且在文章頁面明顯位置給出原文連接,否則保留追究法律責任的權利。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM