天天看點

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/

  本文版權歸作者和部落格園共有,歡迎轉載,但未經作者同意必須保留此段聲明,且在文章頁面明顯位置給出原文連接配接,否則保留追究法律責任的權利。

繼續閱讀