Pagina PHP per comunicare con server FTP?

Salve, ho creato una pagina php per comunicare con il mio server FTP, la pagina dovrebbe permettere il caricamento di un file (scelto tramite un form di una pagina html) sul mio server FTP. Questa è la pagina PHP che ho scritto:

<?

$ftp_server="barb94.no-ip.biz";

$ftp_username="utente";

$ftp_password="password";

$ftp_connessione = ftp_connect($ftp_server);

$login = ftp_login($ftp_connessione, $ftp_username, $ftp_password);

if(!$ftp_connessione || !$login){

echo "Connessione fallita";

} else {

$file_da_caricare = "$file";

$dove_caricare = "guest/$file_da_caricare";

$upload = ftp_put($ftp_connessione, $dove_caricare, $file_da_caricare, FTP_ASCII);

if (!$upload) {

echo "Si è verificato un errore durante il caricamento!!!";

} else {

echo "Upload avvenuto con successo";

}

ftp_quit($ftp_connessione);

}

?>

Ovviamente il mio problema sta nel fatto che i file non vengano caricati, e mi appaia il messaggio che il caricamento non è riuscito.

Ho provato a modificare nella put il metodo ASCII con BINARY, oppure ho inserito una riga per la modalità passiva, ma niente da fare. Sul server risulta l'accesso e il login corretto, ma dopo la pagina tenta il caricamento e fallisce.

Qualcuno ha qualche idea su cosa sbaglio? (non sono molto sicuro della parte dove scelgo DOVE uploadare il file, scrivo il percorso in modo corretto? Vorrei che il file sia inserito nella sottocartella "guest")

Grazie in anticipo.

Aggiornamento:

Il problema è che nella mia pagina html, permetto di scegliere il file dal pc, con un bottone "Scegli file" e lo passo alla pagina php col nome "file", non posso sapere che file di preciso sceglierà l'utente (es: potrà scegliere ciao.txt come mario.rar)

1 risposta

Classificazione
  • 7 anni fa
    Risposta preferita

    nella variabile $file_da_caricare prova a mettere il nome completo del file da caricare, con tutto il path

    per esempio /home/utente8/documenti/documento1.txt

    dovresti avere una pagina "pippo.php"

    in cui c'è il form che usa un utente per fare l'upload di un file

    e questo form dovrebbe puntare a un'altra pagina, diciamo paperino.php

    dentro paperino.php come salvi il file caricato dall'utente col form ?

    perchè prima devo salvare sul disco del server web il file, e lo devi salvare in una posizione ben precisa, e poi questo file lo spedisci al server ftp

    io metterei dentro paperino.php una cosa del tipo:

    $PATH_SERVER_WEB = "/var/htdocs/miosito/archivio/";

    $nomefile_originale = $_FILES['userfile']['name'];

    $dimensione = $_FILES['userfile']['size'];

    $nome_temporaneo = $_FILES['userfile']['tmp_name'];

    $nomefile_breve = str_replace(" ", "", $nomefile_originale);

    $nomefile_completo = $PATH_SERVER_WEB.$nomefile_breve;

    if (move_uploaded_file($_FILES['userfile']['tmp_name'], $nomefile_completo)) {

    print('file caricato, attendere la connessione al server ftp<br>');

    } else {

    die('errore upload file<br>');

    }

    e se arrivi qui dentro nomefile_completo c'è il nome del file da caricare sul server ftp

    ciao

Altre domande? Fai una domanda e ottieni le risposte che cerchi.