en el action="" del formulario, dejalo vacio...sin ningun otro script que lo procese...eso va a hacer que el script se procese en ese mismo script, digamos subirfoto.php...
despues, en subirfoto.php haces esto:
Código PHP:
if(isset($_POST['procesar'])){
//acciones que se realizan, tomas los datos enviados por el formulario,etc (lo mismo que haces en subir.php)
}
Eso lo que hace es procesar el formulario en el mismo script, pones un echo 'Procesado correctamente'; si todo esta bien y listo.
Cabe aclarar que $_POST['enviar'] 'enviar' es el name del boton submit del formulario. Significa que si se ah apretado el boton se haga determinada accion, sino, nada. Esto es para que se intente subir la foto cada vez que se carga subirfoto.php. Sino que solamente se intente subir cuando se apreto el boton submit.
Espero sea eso lo que querias.