Saber si concluyó correctamente la descarga
Amigos, Buenas tardes alguien me sabe explicar si existe la posibilidad de enterarse si una descarga de archivo finaliza correctamente? estoy utilizando el componente Idhttp1 de las indy 9 de la siguiente manera
//Dónde contenido es un TMemoryStream idHttp1.Get(Url, Contenido); Contenido.SaveToFile('C:\archivo.zip'); desde ya muchas gracias. |
La verdad es que nunca lo hice, pero se me ocurre que podrias comparar el tamaño del archivo a bajar con el que bajaste.
|
Agradezco tu interés, te comento que en dicha instancia no tengo manera de conocer el tamaño del archivo a descargar. El programa que descarga el archivo es un autómata y descarga archivos de actualizaciones de una página web en determinados horarios sin intervención alguna del usuario.
|
Hola,
Se me ocurre que utilizes el evento "OnWorkEnd" del componente "TIdHttp". Dicho evento se disparará cuando se complete la descarga. En el mismo puedes comprobar el tamaño del archivo con el tamaño de la descarga. Lo primero puedes conseguirlo con el truco "Tamaño real de un archivo" que encuentras aquí mismo en el ClubDelphi. Lo segundo puedes conseguirlo echando un vistazo a la propiedad "IdHTTP.Response.ContentLength". La cosa podría quedar más o menos así en el evento susomentado:
El único problema que se me ocurre es que el Servidor no retorne el "ContentLength" del archivo. No es lo habitual, pero, puede suceder. Tendrías que hacer pruebas en tu caso. Es lo que se me ocurre a bote pronto. |
El IdHTTP.Response.ContentLength me devuelve el valor -1 sera porque el servidor no me retorna el tamaño?
|
Hola,
¿Te devuelve "-1" una vez comenzada/concluída la descarga? Entonces está claro: el Servidor no retorna el tamaño del archivo a descargar. |
La franja horaria es GMT +2. Ahora son las 05:53:31. |
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