怎么用nmftp控件解决断点续传的问题,最好提供源码和思路。

解决方案 »

  1.   

    断点续传是支持从文件的不同偏移开始传送数据,普通传送是从文件开头传送, 在 RETR 或 STOR 命令发送前先发送一个 REST xxx,表示从文件的偏移 xxx 处 
    开始传送,注意,有的服务器可能不支持 REST 命令。 如果使用ICS控件,那么
    HttpCli.ContentRangeBegin := '100' 表示从100开始
    HttpCli.ContentRangeEnd :='' 表示一直到结束
    HttpCli.ContentRangeEnd :='200' 表示到200字节处结束如果使用 TNMHTTP 控件
    在OnAboutToSend事件,写:
    NMHTTP1.SendHeader.Values['Range'] := 'bytes=100-' 表示从100字节处开始下载到最后
    NMHTTP1.SendHeader.Values['Range'] := 'bytes=100-200' 表示从100字节处开始下载到200字节处结束
    ***************
    procedure TForm1.Button6Click(Sender: TObject);
    var
      f:TSearchRec;
    begin
    FindFirst('a.doc',faAnyFile,f);
    fPreSize:=f.Size;
    NMFtp.DoCommand('Rest '+IntToStr(fPreSize));
    NMFtp.DownloadRestore('a.doc','a.doc');
    end;
    这是用TNMFtp来续传的代码。