如何用DELPHI写程序从HTTP服务器上下载一个文件到指定的目录去?(50分)

  • 主题发起人 主题发起人 ping_hua
  • 开始时间 开始时间
P

ping_hua

Unregistered / Unconfirmed
GUEST, unregistred user!
例如 http://10.76.58.2/new/produce.exe 这个文件在IE下可直接下载,我现在要用
DELPHI下载到指定目录去,用什么控件,有什么方法?
 
//下载相应的附件
procedure TTWebOA.DownLoadWord(sUserName,sPassword,sFileName: string);
var
filename : string;
sIP,sComputerName : String;
begin
//filename := sFileName;
filename := copy(sFileName,pos('/$FILE/',sFileName)+7,length(sFileName));

sComputerName := Copy(sFileName,Pos('http://',sFileName)+7,Length(sFileName));
ScomputerName := Copy(sComputerName,1,Pos('/',sComputerName)-1);

sIp := '192.168.0.1';
if not DirectoryExists('c:/temp') then
begin
if not CreateDir('C:/temp') then
begin
showmessage('不能创建C:/temp目录!');
wordapplication1.disconnect;
Close;
end;
end;

filename := 'C:/temp/'+filename;
//FileCreate(filename);

NMHTTP1.InputFileMode := true;
NMHTTP1.Body := filename ;
NMHTTP1.Header := 'Head.txt';
NMHTTP1.OutputFileMode := FALSE;
NMHTTP1.ReportLevel := Status_Basic;
NMHTTP1.Proxy := sIp;
NMHTTP1.ProxyPort := 80;
With NMHTTP1.HeaderInfo do
Begin
Cookie := '';
LocalMailAddress := '';
LocalProgram := '';
Referer := '';
UserID := sUserName;
Password := sPassword;
End;

NMHTTP1.get(sFileName);

end;
 
你看看URLMon文件吧, 具体我忘记了, 但里面有一个函数是XXDownLoadToFile之类的。
 
你可以用INDY中的TIdHTTP ,现建立一个TFileStream类型的变量downfile;
然后直接用TIdhttp.Get('http://10.76.58.2/new/produce.exe',downfile)
如果你使用它的DoRequest方法,那么你还可以实现很多功能,get其实就是调用了他。
 
后退
顶部