请问一下,有哪位delphi 7做过FTP上传文件,并支持TLS/SSL加密?

解决方案 »

  1.   

    Indy
    TIdFTP + TIdSSLIOHandlerSocketOpenSSL 
    设置TIdFTP.UseTLS
      

  2.   

    var
      IdFTP: TIdFTP;
      IdSSLIOHandlerSocketOpenSSL: TIdSSLIOHandlerSocketOpenSSL;
    begin
      IdFTP := TIdFTP.Create(Nil);
      try
        IdSSLIOHandlerSocketOpenSSL := TIdSSLIOHandlerSocketOpenSSL.Create(Nil);
        try
          IdFTP.IOHandler := IdSSLIOHandlerSocketOpenSSL;
          IdFTP.UseTLS := utUseRequireTLS;      ...    finally
          IdSSLIOHandlerSocketOpenSSL.Free;
        end;
      finally
        IdFTP.Free;
      end;
    end;
      

  3.   

    僵哥,TIdSSLIOHandlerSocketOpenSSL这个是不是要安装的?
      

  4.   

    http://indy.fulgan.com/ZIP/indy10.zip另外还需要OpenSSL的动态库,可以自己下载来编译
    http://www.openssl.org/source/openssl-0.9.8g.tar.gz
      

  5.   

    Delphi7自带的Indy9也可以,但是需要特别版本的OpenSSL动态库,这个也可以到IndyProject的官网上下载到。http://indy.fulgan.com/SSL/indy_OpenSSL096m.zip
      

  6.   

    僵哥,我现在用的是Delphi7自带的Indy9,还想问你一下OpenSSL动态库怎么调动啊?
    我水平一般,麻烦您说具体点!谢谢!!
      

  7.   

    TIdFTP + TIdSSLIOHandlerSocketOpenSSL即可
    LYSoft独家提供OpenSSL for Indy
      

  8.   

    Indy9的没有用过,现在也没有环境调试。
    大致的代码是:uses
      IdSSLOpenSSL;var 
      IdFTP: TIdFTP; 
      IdSSLIOHandlerSocket: TIdSSLIOHandlerSocket ; 
    begin 
      IdFTP := TIdFTP.Create(Nil); 
      try 
        IdSSLIOHandlerSocket := TIdSSLIOHandlerSocket.Create(Nil); 
        try 
          IdFTP.IOHandler := IdSSLIOHandlerSocket; 
          IdFTP.UseTLS := utUseRequireTLS;       ...     finally 
          IdSSLIOHandlerSocket.Free; 
        end; 
      finally 
        IdFTP.Free; 
      end; 
    end;
      

  9.   

    如果IdFTP没有UseTLS的选项,则最好配置IdSSLIOHandlerSocket相关选项。