Si, hamiltons .. mas o menos ...
La base es esa ..
Se puede afinar algo más .. Ejemplos hay en el foro .. de hecho esta FAQ describe como hacer la descarga hasta con opción de "resume" (para que te lo bajes en trozos si se corta la conexión):
http://www.forosdelweb.com/f18/faqs-php-530600-post306781/
Un saludo,