Delphi 使用 TIdFtp 控件实现 FTP 协议 现在很多应用都需要上传与下载大型文件,通过 HTTP 方式上传大文件有一定的局限性
幸好 FTP 作为一个非常老而且非常成熟的协议可以高效稳定地完成大文件的上传下载,并且可以完美地实现续传
就拿我写的电影服务器管理端程序来说,各种方案比较后,发现使用 FTP 可以完美地实现要求
但是要通过 WinSocket 库实现 FTP 比较麻烦,幸好有 Indy--一个包装了大多数网络协议的组件包
通过 Indy,程序设计人员可以通过阻塞方式进行编程,可以抛开蹩脚的 Winsocket 异步模式,采用与 Unix 系统上等同的阻塞编程模式进行
这样,程序员就可以很好的处理程序的运行流程
下面,我们进入到 Indy 的 TIdFtp 世界
控件的说明 使用 Indy 9 中的 TIdFtp 控件可以实现通过 FTP 方式进行文件的上传与下载
控件的具体使用 (1)控件属性设置 默认属性即可,与服务器连接直接相关的属性如主机名与用户等在建立连接时进行设定
需要设定的是 RecvBufferSize 和SendBufferSize 两属性的值
另外需要根据要传输的文件类型指定 TransferType 属性,而其他属性按默认值设定即可
RecvBufferSize 说明(默认值为 8192 字节):该属性为整型变量,用于指定连接所用的接受缓冲区大小
SendBufferSize 说明(默认值为 32768 字节):该属性也为整型变量,用于指定连接所用的发送缓冲区的最大值
该属性在 WriteStream 方法中时,可用于TStream 指定要发送内容的块数
如果要发送的内容大于本属性值,则发送内容被分为多个块发送
TransferType 说明(默认值为 ftBinary):该属性为 TIdFTPTransfe