我用的是delphi2007,如何从服务器上下载文件到本地?是用IdHTTP吧,如何用

解决方案 »

  1.   

    使用shellexe连接文件地址,可以弹出操作系统默认的下载对话框进行数据下载.
    如果想实现自己的文件下载,可以使用IdHttp组件,不过如果文件的数据量比较大的话,就比较麻烦了,如果你是三层应用,可以借助于服务端将文件分断传送,然后在客户端组合在一起.
      

  2.   

    在uses中添加urlmon
    调用windows的api函数URLDownloadToFile
    如下:
    URLDownloadToFile(nil,'http://www.zhcw.com/data-js/nowdata98.js','d:\3d.js',0,nil);蓝色的是要下载的文件地址,红的是保存的路径及名称.
      

  3.   

    调用windows的api函数URLDownloadToFile的好处是可以自动拨号,无须另外编写或加入拨号控件.
      

  4.   

    Indy和ICS都很容易实现的,有Demo的嘛
      

  5.   

    ooooh:
    URLDownloadToFile(nil, 'http://www.zhcw.com/data-js/nowdata98.js ', 'd:\3d.js ',0,nil); 
    我试了,可以下载,不要用IdHTTP或IdFTP吗?也不需要什么端口吗?这一句就可以了?
      

  6.   

    procedure TForm1.Button1Click(Sender: TObject);
    var
      ms:TMemoryStream;
    begin
      try
        if Not IdFTP1.Connected then
        begin
          IdFTP1.Host:=edtHost.text;
          IdFTP1.Port:=strtoint(edtPort.text);
          IdFTP1.Username:=edtUsername;
          IdFTP1.Password:=edtPassword;
          IdFTP1.Connect;
        end;
      Except
        On E:Exception do
        begin
          Exit;
        end;
      end;
      IdFTP1.ChangeDir('f:\windir');  //f:\windir表示服务器上的文件系统目录
      ms:=TMemoryStream.Create;
    try
        IdFTP1.Get('f:\windir\wdsh0407.chm',ms,true);
      ms.SaveToFile(ExtracTFilePath(Application.ExeName)+'22.chm'+'.new');
        ShowMessage('ok');
      except
      end;
    end;
    能下载一个文件,我想下载多个文件呢,如有文件夹呢?