![]() |
![]() |
| Paypal | FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
|||||||
| Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
![]() |
|
|
Herramientas | Buscar en Tema | Desplegado |
|
#1
|
|||
|
|||
|
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;
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 |
|
#2
|
|||
|
|||
|
1- En Android el Almacenamiento interno se describe como "/sdcard"
2- Para hacer uso del almacenamiento interno en Delphi, debe otorgar los permisos al almacenamiento 3- Android 11 y superiores es un caso peculiar, para ello le compartí el link a un repositorio para solventar eso. 4- Le sugiero meter todos sus procesos "pesados" en un Thread Y sincronizar todo lo visual dentro de dicho thread (memos, mensajes, texto en labels, etc); resulta que en Android de no hacerlo, su app parecerá congelada y después se le mostrará el mensaje de "MyApp no responde".... Le sugiero ver el un ejemplo en este link: https://github.com/dani36652/DelphiThreadLoadingDialog Finalmente; su app pareciera congelarse por que la ruta de guardado no era la correcta (/user/emulated/0) en lugar de /sdcard o por que no otorgó los permisos al almacenamiento. Le hago llegar esta corrección esperando le sea de ayuda:
|
|
#3
|
|||
|
|||
|
Hola que tal, ya intenté lo sugerido sin éxito alguno, la respuesta de mi servidor es la misma que la de la imagen adjunta, me dice que esta subiendo el archivo "SeLogro.txt" pero nunca termina y en mi servidor aparece el archivo ".txt" con 0 bytes, tendrás alguna otra idea, creo que ya estoy agotando todas las posibilidades, el celular de donde efectuó las pruebas tiene Android 9, espero sirva de algo y muchas gracias por tu pronta respuesta.
|
|
#4
|
|||
|
|||
|
Me parece que Android a diferencia de Windows metió ciertas restricciones con FTP por lo que se recomienda hacer uso de SFTP. Voy a investigarle, probablemente haya que escribir algo en el manifest.xml como para poder conectar mediante http. Si encuentro la solución la comparto lo antes posible.
|
|
#5
|
||||
|
||||
|
La "sdcard" es la tarjeta externa, ahí si tienes que "jugar" con los permisos necesarios.
__________________
La otra guía de estilo | Búsquedas avanzadas | Etiquetas para código | Colabora mediante Paypal |
![]() |
|
|
Temas Similares
|
||||
| Tema | Autor | Foro | Respuestas | Último mensaje |
| FTP explicíto sobre TLS | newtron | Varios | 2 | 26-04-2022 09:34:43 |
| Conexión con FTP explícito sobre TLS | andres_89 | C++ Builder | 7 | 15-10-2015 18:00:35 |
| Sobre Escribir un archivo de texto | mangel | Varios | 7 | 04-06-2012 22:29:04 |
| escribir cliente desde servidor WEB | JuanErasmo | .NET | 4 | 15-01-2008 15:48:04 |
| Programa para sobre escribir un archivo | Yusk333 | C++ Builder | 9 | 29-09-2007 21:43:43 |
|