mmm... io faccio così:

ho la pagina in estensione php. questa pagina include il form solo se non é ancora stato usato--> quindi c'é un piccolo controllo:

if (isset $POST) {....
}
else { inserisci il form vuoto}

ma puoi fare un form separato, sempre in php che manda i dati alla pagina che hai creato con il codice che fa l'upload.

quindi:

uploadForm.php --> contiene il form (come lo fai in html)
upload.php che gestisce l'upload.