Posto la soluzione al mio problema.

La soluzione è di mettere in una collocazione temporanea il file in upload.
Ho sistemato queste due righe e tutto funziona perfettamente.

Codice PHP:
$file_originale $_FILES['img']['tmp_name'];
$file_destinazione $_FILES['img']['name']; 
quindi lo script completo

Codice PHP:
    $id_connessione ftp_connect($server,21);
    
$login ftp_login($id_connessione$username$password);

    
$file_originale $_FILES['img']['tmp_name'];
    
$file_destinazione $_FILES['img']['name'];
    
if (
ftp_chdir($id_connessione"/public")) {
    echo 
"La cartella di destinazione è: " ftp_pwd($id_connessione) . "
\n"
;

    
$invia ftp_put($id_connessione$file_destinazione$file_originaleFTP_BINARY);     

    echo 
"

[b]"
;
    echo (!
$invia) ? 'Upload fallito :-(' 'Upload completato!';
    echo 
'[/b]</p>';

} else { 
    echo 
"Non &egrave; possibile accedere in questa cartella "ftp_pwd($id_connessione) ."\n";
}

ftp_close($connessione);