Ver Mensaje Individual
  #1  
Antiguo 14-12-2022
kenneth_kenneth kenneth_kenneth is offline
Registrado
 
Registrado: jul 2015
Posts: 3
Reputación: 0
kenneth_kenneth Va por buen camino
Post ¿Cómo escribir un archivo en un servidor FTP sobre TLS explicito desde ANDROID?

Tengo este código que funciona perfectamente en Windows, pero al ejecutar la aplicación en Android, la conexión a FTP es exitosa, pero al escribir el archivo, la aplicación se queda en pausa sin hacer nada.

Cabe señalar que en el servidor FTP, aparece que estoy cargando el archivo como en la imagen:



Este es mi código
Código:
procedure TForm1.Button1Click(Sender: TObject);
begin
    IdFTP:=TIdFTP.Create(nil);
    IdSSLIO:=TIdSSLIOHandlerSocketOpenSSL.Create(nil);
      IdFTP.Disconnect();
        {$ifdef mswindows}
          idopensslsetlibpath('C:\Users\usuario.empresa\Desktop\FTPSExample\SSL');
        {$endif}
        {$ifdef android}
          idopensslsetlibpath(TPath.GetDocumentsPath);
        {$endif}
        IdSSLIO.SSLOptions.Method:=TIdSSLVersion.sslvSSLv23;
        IdSSLIO.PassThrough:=true;
        IdFTP.IOHandler:=IdSSLIO;
        IdFTP.ListenTimeout:=10000;
        IdFTP.ReadTimeout:=10000;
        IdFTP.TransferTimeout:=10000;
        IdFTP.ConnectTimeout:=10000;
        IdFTP.Passive:=true;
        IdFTP.UseTLS:=TIdUseTLS.utUseExplicitTLS;
        IdFTP.DataPortProtection:=TIdFTPDataPortSecurity.ftpdpsPrivate;

        IdFTP.Host := '(ip_ftp)';
        IdFTP.Username := '(user)';
        IdFTP.Password := '(pass)';
        
        try
        IdFTP.Connect;

        try
            {$ifdef mswindows}
              IdFTP.Put('D:\SeLogro.txt','SeLogro.txt',false);
            {$endif}
            {$ifdef android}
              IdFTP.Put('storage/emulated/0/SeLogro.txt','SeLogro.txt',false);
            {$endif}
              ShowMessage('Ready!');
            finally
              IdFTP.Disconnect();

            end;
        except
        on E : Exception do
         begin
           ShowMessage('Exception class name = '+E.ClassName);
           ShowMessage('Exception message = '+E.Message);
         end;
        end;
end;
Encontré una pregunta similar, pero el código está en Java, ¿será posible hacerlo en Delphi 10.3?
https://stackoverflow.com/questions/...r-explicit-tls

Última edición por Neftali [Germán.Estévez] fecha: 15-12-2022 a las 09:21:29. Razón: Añadir la imagen y link
Responder Con Cita