Il problema e` avere tutti i dati.

Per la progress-bar devi conoscere la dimensione del file e la quantita` di byte che sono passati.

La dimensione del file, pero`, il server la puo` sapere solo alla fine, mentre conosce la quantita` di dati passati.
Il client da parte sua, non conosce nulla, per cui deve ricevere input dal server.

Come vedi la cosa e` in linea di massima impossibile, solo in qualche caso molto complessa.

Ciao
Michele