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;

https://www.cnblogs.com/jeremywucnblog/

本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。