我找到了一些解决方案,但它们过于复杂或根本不起作用。我必须从服务器下载 200 张图片(小图片,每张约 15 kB)。我认为我可以使用 IdHTTP:
procedure TForm2.DownloadFile(filename, path: string);
var Stream: TMemoryStream;
Url: String;
begin
Url := filename;
Stream := TMemoryStream.Create;
try
IdHTTP1.Get(Url, Stream);
Stream.SaveToFile(path);
finally
Stream.Free;
IdHTTP1.Free;
end;
end;
这是我猜最常见的方式,它工作得很好。顺便说一句,根据我上面所说的,我必须下载多个文件,解决方案是:
DownloadFile('www.website.com/folder/file1.png', 'C:\folder\file1.png');
DownloadFile('www.website.com/folder/file2.png', 'C:\folder\file2.png');
DownloadFile('www.website.com/folder/file3.png', 'C:\folder\file3.png');
等等。我还有一个进度条,指示下载进度。
问题
有没有更有效的方法来做到这一点?例如,向 IdHTTP 传递一个包含所有链接和必须下载的文件名的列表。