ti suggerire di usare flash actionscript3 cosi puoi mettere la tua barra progressiva e il pulsante personalizzati viene una cosa ben fatta.
Qui trovi una spiegazione:
clicca qui

se ti serve aiuto chiedi


oppure rimanendo sul php c'è quello che cerchi eccoti il sorgente
codice:
<?php

if(isset($_GET['fileName']) && file_exists($_GET['fileName'])) 

{
	header('Content-Description: File Transfer');
	header('Content-Type: application/octet-stream');
	header('Content-Disposition: attachment; filename='.basename($_GET['fileName']));
	header('Content-Transfer-Encoding: binary');
	header('Expires: 0');
	header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
	header('Pragma: public');
	header('Content-Length: ' . filesize($_GET['fileName']));
	ob_clean();
	flush();
	readfile($_GET['fileName']);
	unset($_GET['fileName']);
	exit();
}
devi passargli tramite get una variabile "fileName" con valore il percorso del file +nomefile+estensione.
Attento però che cosi chiunque può scaricare ciò che vuole dal tuo sito quindi per esempio potresti mettere un filtro cioè fare una lista dei file che si possono scaricare e confrontarli quando si cerca di eseguire un download oppure ci sono tanti altri metodi.