To nie zadziała ze względu:
1.Nie ma w php "mocy" w sprawdzaniu ile pliku zostało wysłane, dopiero od którejś z ostatnich wersji, więc będzie można sie spodziewać na serwerach hostingowcyh za 2 mc może
2.Jak w pliku dupa.php chcesz sprawdzić $_FILES[] z pliku upload.php ?
3.Upload "udawany" bez przeladowania robi się inaczej - reczywiście na iframe, ale tak, że w iframe wczytuje sie <input type="file"> potem robi sie tak, żeby to "coś" nie wygladalo jak iframe, dajesz action na upload.php a w upload.php zwracasz sobie wynik w postaci js ktory w window.parent dodaje jakiś obrazek czy cuś, ogólnie sporo czasu trzeba poświęcić, żeby to było funkcjonalne itd. imho - gra nie warta świeczki. Można zrobić inne fajne efekty, takie jak np pojawienie sie inicatora, po wcisnieciu submita upload, a dalej przescie na strone, i obrabianie - np - pomniejszanie, dodawanie logo, robienie miniaturek itp robić w każdym odzielnym skrypcie wywoływanym asynchronicznie - do tego jeszcze jakiś fajny progress bar, a wszystko wygląda PRO i do tego jest bardzo optymalne, bo upload, resizing, czy nakladanie obrazków na siebie w jednym pliku na raz zwyczajnie powoduje timeout, albo przekroczenie limitów pamięciowych u naszych polskich hostingowców... no chyba że masz dedyka