Se devi usare per forza il protocollo ftp allora questo è lo script che fa per te.
Codice PHP:
<?php
// dati di connessione al server FTP
$server = 'ftp.mrwebmaster.it';
$username = 'username';
$password = 'password';
// indichiamo all'applicazione il file locale da uploadare
// e il suono nome nel percorso di destinazione
$file = 'file.txt';
$percorso_ftp = 'nuovo.txt';
// connettiamoci al server FTP
// generalmente in ascolto alla posta 21
$connessione = ftp_connect($server, 21)
or die ('Impossibile connettersi al server.');
// autentichiamoci al server
ftp_login($connessione, $username, $password)
or die('Username o password errati.');
// nel caso ce ne sia la necessità abilitiamo
// il passive mode,
//diversamente potremo commentare la riga seguente
ftp_pasv ($connessione, true);
// uploadiamo il file
$invia = ftp_put($connessione, $percorso_ftp, $file, FTP_ASCII);
// notifica dell'esito dell'upload
echo (!$invia) ? 'Upload fallito' : 'Upload completato';
echo '
';
// questa funzione sostituisce ftp_chmod
// per chi utilizza versioni di PHP inferiori alla 5
if (!function_exists('ftp_chmod')) {
function ftp_chmod($invio_ftp, $c_mode, $nome_file){
return ftp_site
(
$invio_ftp, sechof('CHMOD %o %s', $c_mode, $nome_file)
);
}
}
// rendiamo il file scrivibile con il chmod 0666
if (ftp_chmod($connessione, 0666, $percorso_ftp) !== false) {
echo $percorso_ftp . ' Permessi aggiornati correttamente';
} else {
echo 'Impossibile impostare i permessi su ' . $file;
}
// chiudiamo la connessione al server FTP
ftp_close($connessione);
?>
Naturalmente nel tuo caso dovrai fare in modo che sia l'utente stesso a valorizzare le variabili $file e $percorso_ftp, magari utilizzando una <select>.