idftpserver是indy9才提供的。
那位知道相关的信息,我将非常的感谢。

解决方案 »

  1.   

    我也在作,想做一个自动升级的东西,目前用ie不能正常下载,但使用ftp工具可以。
    郁闷呀!
      

  2.   

    我正在做,现在基本都可以实现了,但是现在在苦于不知道怎么控制传输速度,哪位大虾了解?楼上的那个IE不能正常下载的问题,我以前遇到过,不知道跟你的是不是一样。确切的说,不是不能下载,而是列目录出问题,你把IdFTPServer1.EmulateSystem改成'ftpsUNIX'然后再重新看看你的ONLISTDIRECTORY事件中的代码处理,应该没问题的。
      

  3.   

    呵呵,不复杂的
    我有一个Demo
    支持SSL的FTP服务器,不过只是支持虚拟的文件,要成为真实的文件只有处理一下事件就可以了
    unit SSLFTPServer_Unit;interfaceuses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, StdCtrls, CRC32Verify, IdServerIOHandler, IdSSLOpenSSL,
      IdBaseComponent, IdComponent, IdTCPServer, IdFTPServer, IdFTPList;type
      TForm1 = class(TForm)
        FTPSServer: TIdFTPServer;
        ServerIOHandlerSSL: TIdServerIOHandlerSSL;
        Label1: TLabel;
        portLabel: TLabel;
        Label2: TLabel;
        procedure ServerIOHandlerSSLGetPassword(var Password: String);
        procedure FormCreate(Sender: TObject);
        procedure FTPSServerListDirectory(ASender: TIdFTPServerThread;
          const APath: String; ADirectoryListing: TIdFTPListItems);
        procedure FTPSServerCmd_PROTCommand(ASender: TIdCommand);
        procedure FormClose(Sender: TObject; var Action: TCloseAction);
      private
        { Private declarations }
      public
        { Public declarations }
      end;var
      Form1: TForm1;implementation{$R *.dfm}procedure TForm1.ServerIOHandlerSSLGetPassword(var Password: String);
    begin
      Password:='aaaa';
    end;procedure TForm1.FormCreate(Sender: TObject);
    begin
      portlabel.Caption:=InttoStr(FTPSServer.DefaultPort);
    end;procedure TForm1.FTPSServerListDirectory(ASender: TIdFTPServerThread;
      const APath: String; ADirectoryListing: TIdFTPListItems);
    begin
      With ADirectoryListing.Add do
        begin
          FileName:='SSL FTP Test Virtual Folder';
          ItemType:=ditDirectory;
          Size:=0;
          ModifiedDate:=Now;
          GroupName:='LY';
          OwnerName:='LY';
          UserPermissions:='r--';
          GroupPermissions:='r--';
          OwnerPermissions:='r--';
        end;
      With ADirectoryListing.Add do
        begin
          FileName:='SSL FTP Test Virtual File';
          ItemType:=ditFile;
          Size:=0;
          ModifiedDate:=Now;
          GroupName:='LY';
          OwnerName:='LY';
          UserPermissions:='r--';
          GroupPermissions:='r--';
          OwnerPermissions:='r--';
        end;
    end;procedure TForm1.FTPSServerCmd_PROTCommand(ASender: TIdCommand);
    begin
      if ASender.Params.Count<>1 then
         begin
           ASender.Reply.Text.Text:='parameter required';
           ASender.Reply.NumericCode:=500;
           Exit;
         end;
      if CompareText(ASender.Params[0], 'C')=0
         then ASender.Reply.Text.Text:='PROT command OK. Using Clear data connection.'
         else begin
                ASender.Reply.Text.Text:='parameter not support by PROT command.';
                ASender.Reply.NumericCode:=500;
              end;
    end;procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
    begin
      if FTPSServer.Active then
      try FTPSServer.Active:=false; except end;
    end;end./ by LY http://lysoft.7u7.net http://liuyang.7i24.com http://lysoft.91i.net
      

  4.   

    我用indy9做了一個叫kong680 ftp client,並發佈在csdn.net的上下傳軟件中
    有空去看看
      

  5.   

    client? 偶现在需要的是SERVER啊
      

  6.   

    server 是client的相反過程,也是可以做到的