gpt4 book ai didi

delphi - 如何通过 TIdHTTP 下载大文件?

转载 作者:行者123 更新时间:2023-12-03 15:39:53 30 4
gpt4 key购买 nike

我使用此代码下载小文件:

Var
ms:TMemoryStream;
begin
ms:=TMemoryStream.Create;
Idhttp1.get('http://mydomain.com/myfile.zip',ms);
ms.SaveToFile('myfile.zip');
ms.Free;
end;

但是文件在存储到磁盘之前先保存在 RAM 中,因此例如下载 >1Gb 的文件可能会很困难。有没有办法按部分下载文件?或者我需要使用 WinInet 吗?提前致谢!

最佳答案

TMemoryStream 提供了一个内存缓冲区,因此如果您下载到其中,则需要有足够的内存来保存收到的所有内容。不过,这并不是唯一的流类型。您可以向 Get 方法传递您想要的任何类型的流,包括在接收流时将其内容写入磁盘的流。例如,使用 TFileStream

var
s: TStream;

s := TFileStream.Create('myfile.zip', fmCreate);
try
IdHttp1.Get(..., s);
finally
s.Free;
end;

无论您在 TMemoryStream 上调用 LoadFromFileSaveToFileTFileStream 都可能是更好的选择。

关于delphi - 如何通过 TIdHTTP 下载大文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15383756/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com