Igancio,
Que falta para que pueda recibir un archivo que está en la web.
Si quieres la url real te la envio por privad.
WITH OBJECT ::oAsyncDownload1
:cURL := "http://www.paginaweb/fichero.jpg"
:Run()
If !:lSuccess
quit
EndIf
cImagen := :cBuffer
:Close()
END WITH
Gracias
Saludos.
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.
TAsyncDownload
-
- Mensajes: 123
- Registrado: Mié Jun 16, 2010 2:33 pm
Re: TAsyncDownload
Pepe,
la descarga es "asíncrona", lo que significa que en realidad estás lanzando el proceso de descarga en un segundo hilo... y ya terminará cuando sea
Lo que tienes que hacer es asignar el evento OnDisconnect. Cuando se dispare ese evento significará que, o bien ya has recibido el archivo, o que se ha producido algún error. Lógicamente, al ser completamente asíncrona, te aconsejo que crees el objeto en algún formulario que no se vaya a destruir mientras dure la descarga (p.ej. el formulario principal). Si lo pones en algún formulario que se destruye antes de terminar la descarga, ésta se interrumpirá o incluso podría continuar descargando pero no podrías llegar a obtener el resultado nunca.
la descarga es "asíncrona", lo que significa que en realidad estás lanzando el proceso de descarga en un segundo hilo... y ya terminará cuando sea
Lo que tienes que hacer es asignar el evento OnDisconnect. Cuando se dispare ese evento significará que, o bien ya has recibido el archivo, o que se ha producido algún error. Lógicamente, al ser completamente asíncrona, te aconsejo que crees el objeto en algún formulario que no se vaya a destruir mientras dure la descarga (p.ej. el formulario principal). Si lo pones en algún formulario que se destruye antes de terminar la descarga, ésta se interrumpirá o incluso podría continuar descargando pero no podrías llegar a obtener el resultado nunca.
-
- Mensajes: 123
- Registrado: Mié Jun 16, 2010 2:33 pm
Re: TAsyncDownload
Jose F.
Gracias por la ayuda. Voy a hacer la prueba
Gracias por la ayuda. Voy a hacer la prueba
-
- Mensajes: 123
- Registrado: Mié Jun 16, 2010 2:33 pm
Re: TAsyncDownload
Jose F.
Al final he optado por esto:
WITH OBJECT TInternet():New( Self )
IF :Open()
nTotalRegistros := Len(aDatos)
For nFor := 1 To nTotalRegistros
cURL := "http://www.zzzzzzzzzzz.com/images/productos/"+aDatos[nFor,24]
IF !Empty( hData := :OpenURL( cURL ) )
cImagen := ""
WHILE :ReadFile( hData, @cBuffer, BUFFER_LEN )
cImagen += cBuffer
ENDDO
:CloseURL( hData )
StrFile(cImagen,Application:cDirectory+"\Imagenes\"+StrZero(aDatos[nFor,4],9,0)+".jpg") //products_id
ENDIF
Next
:Close()
ENDIF
END WITH
No se si hay alguna manera mas rapida de hacerlo
Gracias.
Saludos.
Al final he optado por esto:
WITH OBJECT TInternet():New( Self )
IF :Open()
nTotalRegistros := Len(aDatos)
For nFor := 1 To nTotalRegistros
cURL := "http://www.zzzzzzzzzzz.com/images/productos/"+aDatos[nFor,24]
IF !Empty( hData := :OpenURL( cURL ) )
cImagen := ""
WHILE :ReadFile( hData, @cBuffer, BUFFER_LEN )
cImagen += cBuffer
ENDDO
:CloseURL( hData )
StrFile(cImagen,Application:cDirectory+"\Imagenes\"+StrZero(aDatos[nFor,4],9,0)+".jpg") //products_id
ENDIF
Next
:Close()
ENDIF
END WITH
No se si hay alguna manera mas rapida de hacerlo
Gracias.
Saludos.
Re: TAsyncDownload
Pepe,
si es para descargar un fichero:
si es para descargar un fichero:
Código: Seleccionar todo
WITH OBJECT TAsynFileDownload():New( Application:oMainform )
:OnDisconnect := {|| MsgInfo( "Se ha descargardo el archivo." ) }
:OnError := {|| MsgAlert( "Error al descargar el archivo." ) }
:cRemoteFile := cURL
:cLocalFile := "archivo.ext"
:Create()
:Run()
END WITH
-
- Mensajes: 123
- Registrado: Mié Jun 16, 2010 2:33 pm
Re: TAsyncDownload
Gracias Jose F.
Va perfecto.
Esta misma técnica vale para bajar varias imágenes?.
El número de imágenes depende de los pedidos.
Salu2
Pepe.
Va perfecto.
Esta misma técnica vale para bajar varias imágenes?.
El número de imágenes depende de los pedidos.
Salu2
Pepe.