Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Desarrollo en Delphi para Android
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos


Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 10-06-2019
Diego E. Diego E. is offline
Miembro
 
Registrado: mar 2018
Posts: 30
Poder: 0
Diego E. Va por buen camino
Descargar video de FTP Firemonkey

Hola amigos, estoy explorando un tema nuevo para mí que es bajar archivos de un ftp y me encontré con algunos problemas, espero me puedan ayudar.

Estoy realizando una aplicación que requiere mostrar o en su defecto descargar un video .dav de un ftp, ya estuve leyendo algo de información por internet y probando algunos códigos, y aunque en windows funciona al menos un método, al probar con el celular no tengo la misma suerte.

Anexo los códigos(Aportaciones de foristas) de los que me apoye:

Con el siguiente código intentaba abrir la dirección con la forma 'ftp://xxx.xxx.xxx.x/...video.dav', pero al ejecutarlo en el celular me arroja el siguiente mensaje: 'android.content.ActivityNotFoundException: No Activity found to handle Intent {act=android.intent.action.VIEW dat=ftp://xxx.xxx.xxx.x/...}' que supongo yo, se debe a que no inicia con la extensión 'http://' ya que probé abriendo http://www.google.com y si funciona

Código:
Procedure AbrirURLEnChrome(Dir:String);
var   Intent: JIntent;
begin
   Intent := TJIntent.Create;
   Intent.setAction(TJIntent.JavaClass.ACTION_VIEW);
   Intent.setData(StrToJURI(Dir));
   SharedActivity.startActivity(Intent);
end;
También probé con el clásico Web Browser, sin embargo dicho componente agrega la extensión http:// antes de mi ftp://..., con lo cual ya no encuentra la dirección y no se si se puede quitar el que se agregue dicha extensión por si sola

Código:
WebBrowser1.Navigate(Dir);
Finalmente probé con:

Código:
Procedure BajarDeFTP();
var
  filename : String;
  idFTP1 : TidFTP;
  FS : TMemoryStream;
  sPath :String;

begin
  FileName := '/video.dav';
  sPath := TPath.Combine(TPath.GetDocumentsPath, 'video.dav');

  IdFTP1 := TidFTP.Create(Nil);
  IdFTP1.Host := 'xxx.xxx.xxx.x';
  IdFTP1.Username := '***';
  IdFTP1.Password := '***';
  IdFTP1.Passive := True;

  IdFTP1.ConnectTimeout := 6000;
  Fs := TMemoryStream.Create;
  try
    IdFTP1.Connect;
    try
      IdFTP1.TransferType := ftBinary;
      IdFTP1.Get(FileName, FS);
      FS.Position := 0;
      FS.SaveToFile(sPATH);
    finally
      IdFTP1.Disconnect;
    end;

  finally
    Fs.Free;
  end;
 //if FileExists(sPath) then   ShowMessage('Existe');
 end;
Cuyo resultado al parecer es positivo ya que no me arroja una excepción en un try que agregué, pero al buscar el archivo no logro encontrarlo en mi teléfono.

Después de tanto choro, viene la pregunta, alguno sabe como puedo descargar dicho video(método nuevo o usando alguno de los métodos anteriores) del ftp o mejor aún, mostrarlo directamente en la app(tomando en cuenta que el formato es .dav). Gracias por su ayuda.
Responder Con Cita
  #2  
Antiguo 10-06-2019
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.021
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Lo descargado estará en: TPath.GetDocumentsPath
Responder Con Cita
  #3  
Antiguo 10-06-2019
Diego E. Diego E. is offline
Miembro
 
Registrado: mar 2018
Posts: 30
Poder: 0
Diego E. Va por buen camino
Hola Casimiro, antes que nada gracias por responder.
Te comento que revisé la dirección como sugeriste y no hay ningún archivo en la ubicación, adicional a eso debo comentar que al debuguear, justo en la línea

Código:
IdFTP1.Get(FileName, FS);
Manda el siguiente mensaje: raised exception class EIdConnClosedGracefully with message 'Connection Closed Gracefully.'

Pero dicha excepción no la está atrapando el try, pero si está evitando que se descargue el archivo, hace algunos meses notamos un error similar que relacionamos con la conexión a internet por medio de datos en una zona con poca recepción y que la potencia del servidor que tenía la BD era poca, sin embargo en ésta ocasión se están haciendo las pruebas en una oficina con buena calidad de señal de wifi y el servidor del ftp no es nuestro, entonces no hay mucho que podamos hacer por ese camino, ¿saben como se puede solucionar dicho problema?
Responder Con Cita
  #4  
Antiguo 10-06-2019
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.021
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Es que realmente no tenemos ninguna información para poder ayudarte.
Así que divide y vencerás. Empieza por el ftp, descarga un ficherito pequeño. Si funciona bien entonces prueba con un fichero más grande o con alguno de los que necesitas descargar. Si va bien, entonces no es problema del código.
En cuanto a la señal que se corte o algo así, eso sí es un problema.
Lo del servidor con poca potencia eso no tiene importancia alguna.
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
¿Dónde conseguir componentes para Firemonkey? ¿Cómo véis a Firemonkey? dec FireMonkey 27 08-10-2016 18:49:19
Firemonkey y video en tiempo real oab_boa FireMonkey 0 15-05-2015 17:32:06
Descargar un video de youtube en formato flv jlmsr63 Trucos 3 23-05-2008 00:09:37
Insertar Video, o vista preeliminar de video JuanErasmo .NET 0 10-01-2007 21:27:20
Descargar una tarjeta de video ContraVeneno Humor 1 03-01-2006 04:30:31


La franja horaria es GMT +2. Ahora son las 14:08:30.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi