先下载到硬盘上再打开嘛。
问题: 下载功能的实现? ( 积分: 50 )
分类: 程序员大赛
来自: eryu, 时间: 2002-11-20 19:46:00, ID: 1446209
var
MyStrList: TStringList;
在MyStrList里保存了1个或多个文件的下载路径,请问应该如何下载?
要用到哪些控件?
对网络这部分不熟悉,请给出主要源代码并加以说明,谢谢了。
来自: zw84611, 时间: 2002-11-20 19:48:00, ID: 1446215
如果是http,可以这样:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls;
type
TForm1 = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
uses urlmon;
{$R *.DFM}
function DownloadFile(Source, Dest: string): Boolean;
begin
try
Result:=UrlDownloadToFile(nil, PChar(source), PChar(Dest), 0, nil) = 0;
except
Result:=False;
end;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
if DownloadFile ('http://www.vckbase.com/','c:/index.htm') then
ShowMessage('Download succesful')
else
ShowMessage('Download unsuccesful')
end;
end.
来自: eryu, 时间: 2002-11-20 19:56:00, ID: 1446232
看着好晕啊,怎么这么麻烦,还要自己写函数?
implementation
uses urlmon; //这句是什么意思?
{$R *.DFM}
if DownloadFile ('http://www.vckbase.com/','c:/index.htm') //这句又是什么意思?
请简单说明一下好吗?
有没有简单点的方法?
来自: zw84611, 时间: 2002-11-20 19:58:00, ID: 1446237
它将http://www.vckbase.com/的网页下载,保存为c:/index.htm
我觉得已经够简单了[
![Smile :) :)](https://cdn.jsdelivr.net/joypixels/assets/8.0/png/unicode/64/1f642.png)
]
来自: genue, 时间: 2002-11-20 20:00:00, ID: 1446239
这样更好:利用INDY控件中的idHTTP很好,简单,好用,稳定!
在Delphi中还有相应的源程序呢,慢慢看吧。
来自: eryu, 时间: 2002-11-20 20:02:00, ID: 1446244
先谢谢了。
但我不是下载网页,是下载文件啊。
并且不止一个文件,那些文件的路径都保存在MyStrList里。
比如:http://www.abc.com/a.exe,http://lsfj.com/jla/ofj.exe等等
要能下完一个,自动下另一个,直到下完。
这要怎么下呢?
来自: 陈晨, 时间: 2002-11-20 20:05:00, ID: 1446249
顺便提一个关于网页下载的问题,有些网站需要登陆才能看到文章,如:codelphi
我怎么样下载这样的网页呢?还有动态生成的网页,如大富翁??
来自: genue, 时间: 2002-11-20 20:06:00, ID: 1446252
哪还不是一样,我网上有个才作的自升级软件就是用它下载EXE升级包的。
你用一个FOR不就简单搞定了。
来自: zw84611, 时间: 2002-11-20 20:07:00, ID: 1446257
文件也是一样的,只要是http而非ftp
来自: eryu, 时间: 2002-11-20 20:12:00, ID: 1446267
那用idHTTP控件怎样下载的呢?是不是简单点?
各位能结合我的问题举个例子吗?
谢谢了!
来自: iapollo, 时间: 2002-11-20 20:16:00, ID: 1446271
下面的例子是从网上下载一个SWF文件
//用了indy控件,
IdHTTP1: TIdHTTP;
...
procedure TForm1.Button1Click(Sender: TObject);
var
tmpStream:TFileStream;
begin
tmpStream:=TFileStream.Create('c:/get.swf',fmCreate);
try
idhttp1.Get('http://www.xxx.com/xxx.swf',tmpStream);
finally
tmpStream.Free;
end;
end;
来自: genue, 时间: 2002-11-20 20:16:00, ID: 1446273
procuder idHTTP1.get(URL,Stream);
fuction idhppp1.get(URL):string;
procuder idHTTP1.post(URL,Stream);
fuction idhppp1.post(URL):string;
来自: eryu, 时间: 2002-11-20 20:29:00, ID: 1446302
多人接受答案了。
得分大富翁: genue-15,iapollo-20,zw84611-15,