-
-
[求助]Delphi Idhttp控件断点续传下载问题,请教大侠们!
-
发表于:
2015-11-8 23:48
4529
-
[求助]Delphi Idhttp控件断点续传下载问题,请教大侠们!
Delphi Idhttp控件断点续传下载问题,请教大侠们!
我用DELPHI的IDHTTP控制件实现断点续传下载文件。
断开连接后继续下载,下载的文件总大小一直在涨。
如,要下载的文件本来只有2000K,本次下载了500K,断开连接后,下次断点续传下载时,文件长大到2500K左右。我上一下代码,也是网上的代码。我用输出信息看到取本地文件及网络文件大小都正常,但下载就是不行,老涨体积。
procedure TUpdateForm.HttpDownLoad(AUrl, AFile: string; BResume: Boolean);
var
TStream: TFileStream;
begin
try
if FileExists(AFile) then //如果文件已经存在
begin
TStream := TFileStream.Create(AFile, fmCreate);
end
else begin
TStream := TFileStream.Create(AFile, fmCreate);
end;
try
if BResume then //续传方式
begin
IdHTTP1.Request.ContentRangeStart := TStream.Size - 1;
TStream.Position := TStream.Size - 1; //移动到最后继续下载
IdHTTP1.Head(AUrl);
IdHTTP1.Request.ContentRangeEnd := IdHTTP1.Response.ContentLength;
end
else begin
IdHTTP1.Request.ContentRangeStart := 0; //覆盖或新建方式
end;
IdHTTP1.Get(AUrl, TStream); //开始下载
finally
FreeAndNil(TStream);
end;
except
on E: Exception do
begin
WriteLog('IDHTTP.log', Concat('错误信息:', PChar(E.Message)));
end;
end;
end;
[课程]FART 脱壳王!加量不加价!FART作者讲授!