Delphi - Indy idFTP控件实现文件的上传和下载

Posted jeremywucnblog

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Delphi - Indy idFTP控件实现文件的上传和下载相关的知识,希望对你有一定的参考价值。

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;

 

以上是关于Delphi - Indy idFTP控件实现文件的上传和下载的主要内容,如果未能解决你的问题,请参考以下文章

delphi2007中间的indy控件里面base64编码器没有了DecodeToStream函数怎么办?

delphi ftp上传下载

delphi7 Delhi 10.2 sgcWebSockets 控件安装.

Delphi XE10 IdFtp 错误:No FTP list parsers have been registered

写个小程序从FTP上下载文件

使用 Delphi 和 Indy 以编程方式通过 Progress 事件从 Internet 下载文件