Das Zauberwort heißt AJAX
Ich muss aber ehrlich gestehen, dass ich persönlich das Upload auf der Folgeseite gemacht hätte. Das wäre dann die Seite nach erfolgreicher Übertragung.
Ich finde nämlich, zu einem Upload gehören zusätzliche Infos wie max. Größe, Dateitypen, Qualitätsrichtlinien etc. Das auf einer Seite mit weiteren Eingabemöglichkeiten unterzubringen finde ich sehr unschön.
Aber wenn du einzelne Teile zwischendurch abschicken möchtest, machst du das am besten Mit javascript und AJAX.
Mit JavaScript stellst du dann den Request der dann mit dem Server kommuniziert. Der Server liefert dir dann die entsprechenden HTML-Fragmente zurück anhand denen du dann z.b. mit CSS erfolgreich geätigte Eingabefelder unsichtbar machen kannst :)
Aber am einfachsten geht es wirklich mit zwei Seiten.