zoukankan      html  css  js  c++  java
  • Delphi从Internet下载文件

    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函数中用参数来处理自已的进度条以显示下载进度。因为我的程序不需要,所以没有写出来。

  • 相关阅读:
    WebApi 2:属性路由 [Route()],attribute routing
    WebApi:路由和Action选择
    1024 科学计数法(20 分)
    1023 组个最小数(20 分)
    1022 D进制的A+B(20 分)
    1021 个位数统计(15 分)
    1020 月饼(25 分)
    1019 数字黑洞(20 分)
    1018 锤子剪刀布(20 分)
    1017 A除以B(20 分)
  • 原文地址:https://www.cnblogs.com/china1/p/3395100.html
Copyright © 2011-2022 走看看