实际上我正在使用TIdHTTP组件从互联网上下载文件.我想知道是否可能暂停并使用此组件恢复下载o也许是另一个indy组件.
这是我目前的代码,这适用于下载文件(没有恢复),但是.现在我想暂停下载关闭我的应用程序,当我的应用程序重新启动后,从最后保存的位置恢复下载.
var Http: TIdHTTP; MS : TMemoryStream; begin Result:= True; Http := TIdHTTP.Create(nil); MS := TMemoryStream.Create; try try Http.OnWork:= HttpWork;//this event give me the actual progress of the download process Http.Head(Url); FSize := Http.Response.ContentLength; AddLog('Downloading File '+GetURLFilename(Url)+' - '+FormatFloat('#,',FSize)+' Bytes'); Http.Get(Url,MS); MS.SavetoFile(LocalFile); except on E : Exception do Begin Result:=False; AddLog(E.Message); end; end; finally Http.Free; MS.Free; end; end;
解决方法
也许HTTP RANGE标头可以帮助你.有关恢复HTTP下载的更多信息,请查看
http://www.west-wind.com/Weblog/posts/244.aspx.
另请参阅此处有关同一主题的TIdHTTP相关讨论的https://forums.embarcadero.com/message.jspa?messageID=219481.