Ciao a tutti, la mia domanda per voi, oggi, è più teorica che pratica.
Infatti proprio non riesco a capire la logica di funzionamento di un upload ftp tramite php.
Premetto che il codice l'ho già scritto e funziona, eccolo. La domanda che vi devo fare viene dopo. Leggetela, vi prego e rispondetemi.
Codice PHP:
<?php
if (isset($_POST['send_file'])) {
$ftp_server = $_POST['ftp_server'];
$username = $_POST['username'];
$password = $_POST['password'];
if ($ftp_server != 'ftp server' && $ftp_server != '') {
if ($username != 'username' && $username != '') {
if ($password != 'password' && $password != '') {
if (is_uploaded_file($_FILES['file']['tmp_name'])) {
$file = $_FILES['file']['tmp_name'];
$new_file = 'ftp/'.$_FILES['file']['name'];
//////////////////////////////////////////////////////////////////
//attivare la connessione ftp
$connessione = ftp_connect($ftp_server, 21) or die ('Impossibile connettersi al server.');
//effettuare il login
ftp_login($connessione, $username, $password) or die('Username o password errati.');
//modalità passiva
ftp_pasv($connessione, true);
//upload del file
$invia = ftp_put($connessione, $new_file, $file, FTP_ASCII);
//esito dell'upload
echo (!$invia) ? 'Upload fallito' : 'Upload completato
';
//settaggi chmod
if (ftp_chmod($connessione, 0666, $new_file) !== false) {
echo $new_file.' Permessi aggiornati correttamente
';
} else {
echo 'Impossibile impostare i permessi su '.$new_file;
}
// chiusura della connessione
ftp_close($connessione);
if (file_exists($_FILES['file']['name'])) {
echo 'Il file esiste';
} else {
echo 'Il file non esiste';
}
//////////////////////////////////////////////////////////////////
} else {
$mex = '<font color="red">Inserire file</font>
';
}
} else {
$mex = '<font color="red">Inserire password</font>
';
}
} else {
$mex = '<font color="red">Inserire username</font>
';
}
} else {
$mex = '<font color="red">Inserire server ftp</font>
';
}
}
echo $mex;
?>
<form enctype="multipart/form-data" name="ftp_form" action="<?php echo $_SERVER['PHP_SELF'];?>" method="post">
<input type="text" name="ftp_server" value="ftp server"/>
<input type="text" name="username" value="username"/>
<input type="password" name="password" value="password"/>
<input type="file" name="file"/>
<input type="submit" name="send_file" value="Submit file"/>
</form>
Confermando che il codice funziona, la mia domanda è questa:
Nel momento in cui io premo il tasto submit, il file viene trasferito in una cartella temporanea sul server... giusto? A quel punto, e solo a quel punto, viene eseguito il codice per la connessione FTP. Ma in quel momento, il file, non si trova già sul server?
Qual'è il vantaggio di usare il codice per la connessione ftp invece di un semplice move_uploaded_file()?
Vi prego rispondetemi perchè non capisco proprio.
Grazie a tutti