Allora.... calma!
Una variabile globale in PHP non è un valore di default che sta nell'interprete.
Una variabile globale è una variabile di uno script, che può essere utilizzata all'interno sia all'esterno di una funzione e/o una classe.
Per intenderci, se usi una variabile in uno script, e non la dichiari come globale, quella stessa variabile sarà nulla all'interno di una funzione.... e viceversa.
Questo non c'entra nulla con la tua domanda, ma ho preferito puntalizzare perché altrimenti non capisci un concetto fondamentale nello sviluppo di applicazioni in PHP.
Passiamo alla tua domanda.
Si ma non posso sapere a priori come sarà fatto il server di destinazione del sito
Nel tuo ambiente di sviluppo, avrai sicuramente una cartella all'interno della quale salvi i tuoi script.
Non escludo, se sei un minimo ordinato, che applicazioni diverse saranno contenute in directory diverse, per una più facile lettura della cartella stessa.
Suppongo che la directory in cui salvi i tuoi script, la DOCUMENT ROOT che hai dichiarato nel php.ini, sia qualcosa del tipo: C:\easyphp\www.
Nel tuo script di upload, includi una pagina di configurazione scritta in php, composta più o meno come segue:
Codice PHP:
<?php
$cartella_upload = "C:/easyphp/www/sitoxyz/upload";
$cartella_immagini = $cartella_upload."/img";
/*
... e chi più ne ha più ne metta
qui puoi anche mettere le password di accesso al DB
Altri percorsi assoluti di altre cartelle
insomma, tutte le costanti che non vuoi ripetere
all'interno dei tuoi script
*/
?>
Questo file lo salvi nella root (o altra cartella) e lo richiami con un include() in ogni pagina della tua applicazione.
Nel tuo esempio specifico, userai un file di configurazione per il tuo ambiente di sviluppo in locale, ed uno in remoto con tutte le variabili dettate dall'hoster.
Qui sta il punto.
Quando sottoscrivi uno spazio in hosting, l'hoster di solito invia una email con tutti i parametri e le modalità di utilizzo relative al tuo piano di hosting, nonché le password di accesso al DB mysql nel caso ne hai uno.
Nel esempio che ho usato io sopra, noterai che tra i due file (quello remoto e quello in locale) non dovrai fare altro che cambiare l'indirizzo di destinazione della cartella con i permessi di scrittura per far funzionare "magicamente" tutto!