Delphi10.2 关于Http 下载

演示如图:

代码如下:

 1 unit Unit1;
 2
 3 interface
 4
 5 uses
 6   Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
 7   Vcl.Controls, Vcl.Forms, Vcl.Dialogs, IdComponent, Vcl.ComCtrls, Vcl.StdCtrls,
 8   IdAntiFreezeBase, IdAntiFreeze, IdBaseComponent, IdTCPConnection, IdTCPClient,
 9   IdHTTP;
10
11 type
12   TForm1 = class(TForm)
13     Label1: TLabel;
14     Label2: TLabel;
15     Edit1: TEdit;
16     Edit2: TEdit;
17     IdHTTP1: TIdHTTP;
18     IdAntiFreeze1: TIdAntiFreeze;
19     Button1: TButton;
20     ProgressBar1: TProgressBar;
21     Label3: TLabel;
22     Label4: TLabel;
23     Label5: TLabel;
24     Label6: TLabel;
25     procedure IdHTTP1WorkBegin(ASender: TObject; AWorkMode: TWorkMode;
26       AWorkCountMax: Int64);
27     procedure IdHTTP1Work(ASender: TObject; AWorkMode: TWorkMode;
28       AWorkCount: Int64);
29     procedure Button1Click(Sender: TObject);
30   private
31     { Private declarations }
32   public
33     { Public declarations }
34   end;
35
36 var
37   Form1: TForm1;
38
39 implementation
40
41 {$R *.dfm}
42 //1. 字节数转换为KB或MB字符串
43 function BytesToStr(iBytes: Integer): String;
44 var
45   iKb: Integer;
46 begin
47   iKb := Round(iBytes / 1024);
48   if iKb > 1000 then
49     Result := Format(‘%.2f MB‘, [iKb / 1024])
50   else
51     Result := Format(‘%d KB‘, [iKb]);
52 end;
53
54 procedure TForm1.IdHTTP1WorkBegin(ASender: TObject; AWorkMode: TWorkMode;
55   AWorkCountMax: Int64);
56 begin
57   ProgressBar1.Max := AWorkCountMax;                // 获取要下载的文件大小
58   Label2.Caption := BytesToStr(AWorkCountMax);
59   Update;
60 end;
61
62 procedure TForm1.IdHTTP1Work(ASender: TObject; AWorkMode: TWorkMode;
63   AWorkCount: Int64);
64 begin
65   Label1.Caption := BytesToStr(aWorkCount);      //更新进度
66   ProgressBar1.Position := aWorkCount;           //更新进度条
67   Update;
68 end;
69
70
71 procedure TForm1.Button1Click(Sender: TObject);
72
73 var
74   tStream: TMemoryStream;
75 begin
76   tStream := TMemoryStream.Create;
77   try
78     IdHTTP1.Get(Edit1.Text, tStream);       //保存到内存流 (下载链接)
79     tStream.SaveToFile(Edit2.Text);         //保存为文件  (路径)
80     ShowMessage(‘下载成功!‘);
81   except
82     ShowMessage(‘下载失败!‘);
83   end;
84   tStream.Free;
85
86 end;
87
88
89 end.
时间: 2024-12-16 05:49:49

Delphi10.2 关于Http 下载的相关文章

Delphi10.2 Tokyo试用(1)

最近下载了Delphi10.2 Tokyo,试用了一下,感觉不错,尤其是针对Linux的开发,总算出来了,可以考虑把原来服务器重新编译成RedHat上使用了,免得客户一天到晚喊Windows不安全,要求上Linux. 安装过程没有什么特殊的,要编译Linux程序,还必须下载插件FmxLinux,插件安装也比较简单,这里不多说. Tokyo目前仅支持 Ubuntu Server (Ubuntu 16.04 LTS)RedHat Enterprise Linux (版本 7) Centos是否可用不

Python学习1-Python和Pycharm的下载与安装

本文主要介绍Python的下载安装和Python编辑器Pycharm的下载与安装. 一.Python的下载与安装 1.下载 到Python官网上下载Python的安装文件,进入网站后显示如下图: 网速访问慢的话可直接在这里下载:python-2.7.11.amd64 在Downloads中有对应的支持的平台,这里我们是在Windows平台下运行,所以点击Windows,出现如下: 在这里显示了Python更新的所有版本,其中最上面两行分别是Python2.X和Python3.X对应的最后更新版本

cocos Creator js 房卡麻将/血战/H5四川麻将源码下载搭建

房卡麻将/血战/H5四川麻将 源码 支持iOS/Android/H5 完整源码 1.基于NODEJS+MYSQL的服务器,成熟的技术方案,高效稳定,且方便Windows开发,Linux平台布署,节约服务器运转成本. 2.采用最新版本的cocos引擎,cocos creator开发,可快速的进行界面调整.且能够快速地发布iOS,Android版本. 3.如需H5版本,只需针对H5平台进行资源优化即可. 4.成熟可靠的房卡式设计,能满足大部分用户使用体验. 5.产品经过大量测试,可以运转稳定. 测试

下载-深入浅出Netty源码剖析、Netty实战高性能分布式RPC、NIO+Netty5各种RPC架构实战演练三部曲视频教程

下载-深入浅出Netty源码剖析.Netty实战高性能分布式RPC.NIO+Netty5各种RPC架构实战演练三部曲视频教程 第一部分:入浅出Netty源码剖析 第二部分:Netty实战高性能分布式RPC 第三部分:NIO+Netty5各种RPC架构实战演练

下载Java8实战视频教程

1.15套java架构师,高并发,分布式,集群,大型分布式综合项目实战详情:https://my.oschina.net/java168/blog/863547 2.36套精品Java高级课及架构课,亿级流量,P2P金融,第三方支付,设计模式实战,程序调优,系统设计:https://my.oschina.net/java168/blog/1539323 下载Java8实战视频教程

Windows下MySQL下载安装、配置与使用

用过MySQL之后,不论容量的话,发现比其他两个(sql server .oracle)好用的多,一下子就喜欢上了.下面给那些还不知道怎么弄的童鞋们写下具体的方法步骤. (我这个写得有点太详细了,甚至有些繁琐,有很多步骤在其他的教程文档里都是省略掉的,但我还是要写出来,因为我当时走了很多弯路,我希望你们能够避免我走的这些弯路.当然,知道同学的可以略过,选择你想知道的地方看) 第一大步:下载.(不需要注册也可以下载,直接点下面的no thanks) a.俗话说:“巧妇难为无米之炊”嘛!我这里用的是

Java企业微信开发_09_素材管理之下载微信临时素材到本地服务器

一.本节要点 1.获取临时素材接口 请求方式:GET(HTTPS) 请求地址:https://qyapi.weixin.qq.com/cgi-bin/media/get?access_token=ACCESS_TOKEN&media_id=MEDIA_ID 2.获取临时素材接口的返回结果 企业微信官方开发文档中说明的返回结果如下: 若你以为这就是返回结果,然后跟之前一样,先访问接口,从http连接的输入流中的获取回结果的文本内容,你会发现你接收到的结果是一堆乱码. 这是为何? 以图片为例,此处千

微信小程序源码下载(200多个)

微信小程序源码下载汇总,点击标题进入对应的微信小程序下载页面. 最新 demo源码(点击标题进入帖子下载) 描述 1 微信小程序 会议室预定小程序 微信小程序 会议室预定小程序**** 本内容被作者隐藏 **** 2 微信小程序-双人五子棋小游戏 微信小程序-双人五子棋小游戏**** 本内容被作者隐藏 **** 3 打卡签到小程序 用微信小程序实现的一个简单的打卡签到的小程序拒绝 4 微信小程序---左滑删除 微信小程序---左滑删除**** 本内容被作者隐藏 **** 5 一个借钱的记事本的微

【资源共享】《Camera_for_RockChipSDK参考说明_v4.1》下载

关于摄像头调试的文档<Camera_for_RockChipSDK参考说明_v4.1> 下载地址:http://developer.t-firefly.com/thread-12429-1-1.html