[原]关于Indy组件(Delphi)实现FTP上传断点续传的方法 (upload resume)

Indy不仅支持下载断点续传,也支持上载断点续传,而且不需要对Indy做出改造。
在Blues的blog,他提到可以“通过IDFTP得到服务端已经上传的部分的SIZE,然后通过文件流在本地建立剩余部分的临时文件,然后以APPEND方式上传,传完后删除临时文件,达到上传断点续传的效果”。原文在此:DELPHI ftp 上传断点续传的实现
我再仔细看了Indy的源码,发现不需要临时文件。可以对Blues的方法作出重大改进:
Put()方法第一个参数可以是TStream(实际上,如果是文件名的话Indy会建立Stream,然后再调用Stream的Put方法)。而且如果Append设为True的话,Indy不会去动Stream的Position:

也就是说,先把原文件的Stream Seek到Size位置,丢给Indy即可,实现也很简单:

[原]关于Indy组件(Delphi)实现FTP上传断点续传的方法 (upload resume)》上有1条评论

发表评论