Delphi从Internet下载文件
今天在做拍卖系统的时候,因考虑到网络状况问题,需要将拍品所有信息下载到本机,包括拍品图片,因此需要实现从Internet下载文件的功能。
下面是代码片段:
下面是代码片段:
private function DownloadFile(SourceFile, DestFile: string): Boolean; procedure URL_OnDownloadProgress(Sender: TDownLoadURL; Progress, ProgressMax: Cardinal; StatusCode: TURLDownloadStatus; StatusText: String; var Cancel: Boolean) ; { Private declarations } . function TFrameChannel.DownloadFile(SourceFile, DestFile: string): Boolean; var hasError: boolean; begin hasError:=false; with TDownloadURL.Create(self) do try URL:=SourceFile; FileName := DestFile; OnDownloadProgress := URL_OnDownloadProgress; ExecuteTarget(nil) ; except on e: Exception do begin FormMain.SetStatusInfo(e.Message); Free; hasError:=true; end; end; Result := not hasError; end; procedure TFrameChannel.URL_OnDownloadProgress; begin Application.ProcessMessages; end; 调用时: ofname:='http://www.aaa.com/a.jpg'; nfname:='images\.jpg'; if not DownloadFile(ofname, nfname) then showMessage('Error') end showMessage('OK');
注:以上程序在大文件下载过程不会死锁,而且你可以在URL_OnDownloadProgress函数中用参数来处理自已的进度条以显示下载进度。因为我的程序不需要,所以没有写出来。