Salve a tutti, prima che qualcuno dica che è già stata fatta questa domanda, rispondo che ne ho già lette molte ma non ho trovato quello che cercavo.
In poche parole il mio problema è questo, vorrei poter trasferire dei file sul mio sito senza dover utilizzare un client ftp.
Al momento ho trovato due diverse soluzioni, la prima è attraverso i comandi FTP di PHP, la seconda è con il comando copy()
Questo è il codice per collegarsi via FTP
codice:
<?php
$ftp_server = "xxxxxxxx";
$ftp_user_name = "xxxxxxxx";
$ftp_user_pass = "xxxxxxxx";
$conn_id = ftp_connect($ftp_server);
// login con user name e password
$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);
// controllo della connessione
if ((!$conn_id) || (!$login_result)) {
echo "La connessione FTP è fallita!";
echo "Tentativo di connessione a $ftp_server per l'utente $ftp_user_name
";
die;
} else {
echo "Connesso a $ftp_server, utente $ftp_user_name
";
}
// upload del file
$destination_file = '/uploadFTP/'.$_FILES['file']['name'];
$source_file = $_FILES['file']['tmp_name'];
$upload = ftp_put($conn_id, $destination_file, $source_file, FTP_BINARY);
// controllo dello stato di upload
if (!$upload) {
echo "Il caricamento FTP non è andato a buon fine!";
} else {
echo "Caricato il file $source_file su $ftp_server come $destination_file";
}
// chiudere il flusso FTP
ftp_quit($conn_id);
?>
Questo invece è il comando per copiare un file utilizzando la funzione copy()
codice:
<?
$nome='nome e posizione del file';
//Funziona anche per url esterni al server stesso Es. http:/ /www.nomesito.it/prova.txt
copy($nome, basename($nome));
?>
Per specificare quale file caricare, una possibilità è quella di utilizzare un form per inviare il file, così facendo però incombo nel limite massimo di 2Mb, poichè mi pare venga prima caricato in una cartella temporanea del server.
La mia domanda è questa.
Esiste un modo più diretto per permettere di caricare direttamente il file che desidero senza farlo passare prima da una cartella temporanea del server?