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