Delphi 编程,从网络上下载文件,我一般用 UrlDownloadToFile API函数,简单,实用。
function DownloadFile(const strURL, strDownFileName: string): Boolean;
begin
try
Result := UrlDownloadToFile(nil, PChar(strURL), PChar(strDownFileName), 0, nil) = 0;
except
Result := False;
end;
end;
但是昨天,测试给我反映,有的客户那里,没有换成更改后的新的图片,还是老的图片。
一开始我还以为是权限的问题,没有目录读写权限造成的。
在客户的电脑上折腾了一番,依然没能找到问题所在。
没有办法,只好一步一步写日志输出。
竟然发现 UrlDownloadToFile 根本就没有从网络上将文件下载下来。使用的是缓存里面的文件。
还是老老实实用 IDHTTP 下载吧。
procedure DownloadFile(const strURL, strDownFileName:String);
var
mmfs : TFileStream;
begin
mmfs := TFileStream.Create(strDownFileName,fmCreate);
try
IdHTTP.Get(strURL,mmfs);
finally
mmfs.Free;
end;
end;
这个函数有个明显的缺点,就是不知道下载的状态,是成功了,还是失败了。这个就留作课后作业。大家自己想办法了。(当然还有个缺陷就是需要一个 IDHTTP 控件)
记录一下。提醒大家注意。