IDFTP中如何实现断点续传(200分)

  • 主题发起人 主题发起人 乡间小小
  • 开始时间 开始时间

乡间小小

Unregistered / Unconfirmed
GUEST, unregistred user!
我看了不少例子,都没有断点续传,那位大哥教教小弟。最好给个续传的例子。
如果如有续传的原理就更好了,几天没来,有了600分,贡献200分给大哥。
NMFTP有这个方法,但他不好。
 
能否续传是由FTP Server决定的, 在FTP Server允许续传的情况下,直接使用Get方法就行了:
procedure Get(const ASourceFile: string; ADest: TStream; AResume: Boolean = false); overload;
procedure Get(const ASourceFile: string; const ADestFile: string; const ACanOverwrite: boolean = false; AResume: Boolean = false); overload;
只要传入最后一个参数为True就是续传了, 默认是不续传的。
 
可我加true后还是覆盖。
教科书上也是你这么说的。
IdFTP1.Get(edit1.text, 'c:/abc.rar', true);
我是这样写的,都是覆盖。
GET有两种写法,第二种是什么意思。
请楼上赐教。
 
前一种是从AourceFile指定的文件名下载数据到你的TStream: ADest中
后一种是直接下载到本地文件ADestFile中。
应该不会覆盖的, 你试试下载到文件中的方法。
另外,下载之前你要把现有的内容装载到ADest那个Stream里面, 然后Indy才能根据你已
有的内容作续传。
 
xianjun:
你好,你能把问题讲的更清楚一些吗?如果能带上例程就更好了。先行谢过。
 
呵呵, 刚刚忘了说了, 你用错参数了, 因为你调用的是第二种写法:
IdFTP1.Get(edit1.text, 'c:/abc.rar', true);
应该是
IdFTP1.Get(edit1.text, 'c:/abc.rar', false, true);
 
xianjun兄弟,虽然迟了一点,我自己已做出来了,但是还是谢谢您的热心。真的,谢谢了!
 
后退
顶部