Вообще-то PHP сначала грузит в temp дирректорию, причем переименовывает файл, так как ему удобно. Вы же работает с указателем и дальше, что хотите. Копируете, переименовываете ... всё это прелюдия, но проще говоря "мусор" обынчо php подчищает сам. Ну если уж с ней всё хреново, то может просто
сносить temp дирректорию и потом снова ее создвавать.
Код:
<?
$tmp="/home/gde/temp/dir";
exec ("RMD ".$tmp);
exec ("MKD ".$tmp);
exec (CHMOD 770 ".$tmp);
?>
Что касается прогресс бара, то думаю, что это в принципе низя. Потому как PHP начинает отрабатывать, когда уже файл залит ...