Mmm... io lo varei in C/C++ o magari VBasic .NET.
Cmq... per il resume fai come fa il nostro amico Win MX.
Un bel file di testo con memorizzato la lunghezza totale del file (in byte) e i byte totali scaricati (+ il nome del file in fase di download).