A giudicare dall'errore, a me sembra che lo script upload.php non abbia i permessi per aprire file in scrittura, e non che i permessi manchino alla directory destinazione di moveuploadedfile().
Controlla!
Forse puoi risolvere spostando upload.php in un'altra directory del tuo server.
E poi, vedo che usi moveuploadedfile() con un solo parametro, assoluto anzichè relativo, e senza neppure quotarlo: non sono affatto sicuro che sia corretto...