Estimados,
Tengo una pequeña aplicación que cada 5 minútos descarga los archivos que se encuentren en una carpeta de un servidor en internet, a través de FTP, la cual funciona sin problemas.
Ahora me piden que relice la descarga sin FTP. Lo que me informan es que me dan una URL donde estarán los archivos a descargar y que lo haga desde ahí.
He visto que hay una clase me permitiría hacer eso (Tinternet) pero soy totalmente nulo en el tema y quisiera resolver el problema, de "algúna forma" análoga a como lo hago por FTP, en donde me siento que tengo bastante control (puedo conocer qué archivos hay para desgargar, los puedo renombrar,borrar etc. etc.).
Agradecería cualquier ayuda que me diera un poco de luz, ya sea un ejemplo, un manual que explique qué cosas debo tener en cuenta para usar dicha clase, etc.
Un saludos
Daniel
In order for this site to work correctly we need to store a small file (called a cookie) on your computer. Most every site in the world does this, however since the 25th of May 2011, by law we have to get your permission first. Please abandon the forum if you disagree.
Para que este foro funcione correctamente es necesario guardar un pequeño fichero (llamado cookie) en su ordenador. La mayoría de los sitios de Internet lo hacen, no obstante desde el 25 de Marzo de 2011 y por ley, necesitamos de su permiso con antelación. Abandone este foro si no está conforme.
Para que este foro funcione correctamente es necesario guardar un pequeño fichero (llamado cookie) en su ordenador. La mayoría de los sitios de Internet lo hacen, no obstante desde el 25 de Marzo de 2011 y por ley, necesitamos de su permiso con antelación. Abandone este foro si no está conforme.
Descarga de archivos desde internet
Re: Descarga de archivos desde internet
Daniel,
Yo lo utilizo para las descargas de las actualizaciones de mis aplicaciones...
y me està funcionando perfectamente.
Un Saludo,
Xevi.
Yo lo utilizo para las descargas de las actualizaciones de mis aplicaciones...
Código: Seleccionar todo
WITH OBJECT ::oAsynFileDownload1
:cRemoteFile := "https://docs.google.com/uc?export=download&id=" + aSQL[1,3]
:cLocalFile := Application:cDirectory + "\CWinUpdate.zip"
:OnConnect := {|| lDownloadDrive := .T. }
:OnDisconnect := {|| lDownloadDrive := .F. }
:OnTotalDnLoadInfo := {|o,nProgress| ::oProgressBar1:nValue += nProgress }
:Run()
END WITH
while lDownloadDrive
ProcessMessages()
EndDo
Un Saludo,
Xevi.
Un Saludo,
Xevi.
Xevi.
Re: Descarga de archivos desde internet
Xevi,
Muchas gracias por tu ayuda.
Por lo que pude ver, la clase que tu utilizas, recibe el nombre exacto del archivo a descargar, pero en mi caso desconozco tanto los nombres como la cantidad de archivos a descargar, lo cual debo poder averiguar antes de comenzar la descarga. ¿Hay alguna forma de hacerlo con esa clase?.
Gracias
Daniel
Muchas gracias por tu ayuda.
Por lo que pude ver, la clase que tu utilizas, recibe el nombre exacto del archivo a descargar, pero en mi caso desconozco tanto los nombres como la cantidad de archivos a descargar, lo cual debo poder averiguar antes de comenzar la descarga. ¿Hay alguna forma de hacerlo con esa clase?.
Gracias
Daniel
Re: Descarga de archivos desde internet
Podrías utilizar la maravillosa tWebDataSource que hace lo que pretendes perfectamente pero te debríand e dejar subir un pequeño módulo Php al servidor y no se si podrás.
BiSoft Desarrollo de software profesional
http://www.bisoft.es
http://www.bisoft.es
Re: Descarga de archivos desde internet
Bingen,
Muchas gracias por tu sugerencia, pero no dejan "poner" nada en el servidor.
He podido resolverlo usando la clase Tinternet.
Resultó más simble de lo pensado, dado que lo que me dejan en la URL es siembre el mismo archivo.
Y con mis escasos conocimientos lo resolví así. Seguramente habrá alguna forma mas "elegante" de hacerlo, pero al manos así funciona.
cUrl_Servidor := "https://www.servidor_del_cliente.com"
WITH OBJECT ::oInternet1
:nPort := inetHTTPS
:cAgent := "MVSC"
:cUser := ""
:cPassword := ""
:nTimeOut:= 60000
if :Open()
if (::lConnected := :Connect(cUrl_Servidor))
cUrl_Recurso :="https://www.servidor_del_cliente.com./api_gedis.php?token=e2e133cca14c5198e66fc434ede795263eab540f"
cBuffer := ''
hDatos := ::oInternet1:OpenURL( cUrl_Recurso )
while :ReadFile( hDatos, @cDatos, 65536 )
cBuffer += cDatos
end while
:Close()
endif
END WITH
Saludos
Daniel
Muchas gracias por tu sugerencia, pero no dejan "poner" nada en el servidor.
He podido resolverlo usando la clase Tinternet.
Resultó más simble de lo pensado, dado que lo que me dejan en la URL es siembre el mismo archivo.
Y con mis escasos conocimientos lo resolví así. Seguramente habrá alguna forma mas "elegante" de hacerlo, pero al manos así funciona.
cUrl_Servidor := "https://www.servidor_del_cliente.com"
WITH OBJECT ::oInternet1
:nPort := inetHTTPS
:cAgent := "MVSC"
:cUser := ""
:cPassword := ""
:nTimeOut:= 60000
if :Open()
if (::lConnected := :Connect(cUrl_Servidor))
cUrl_Recurso :="https://www.servidor_del_cliente.com./api_gedis.php?token=e2e133cca14c5198e66fc434ede795263eab540f"
cBuffer := ''
hDatos := ::oInternet1:OpenURL( cUrl_Recurso )
while :ReadFile( hDatos, @cDatos, 65536 )
cBuffer += cDatos
end while
:Close()
endif
END WITH
Saludos
Daniel
Re: Descarga de archivos desde internet
Me alegro es una buena solución también.
Salu2
Salu2
BiSoft Desarrollo de software profesional
http://www.bisoft.es
http://www.bisoft.es