PHP: effettuare l'upload di un file binario tramite FTP

In questo articolo vedremo come effettuare l'upload FTP di un file binario con PHP.

La soluzione è la seguente:


function upload_file_to_ftp($ftp_server, $ftp_user_name, $ftp_user_pass, $filepath) {
    if (!file_exists($filepath)) {
        return false;
    }
    $remote_file = basename($filepath);
    $conn_id = ftp_connect($ftp_server);
    $login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);
    if ((!$conn_id) || (!$login_result)) {
        return false;
    }
    ftp_pasv($conn_id, true);
    $upload = ftp_put($conn_id, $remote_file, $filepath, FTP_BINARY);
    ftp_close($conn_id);
    if (!$upload) {
        return false;
    } else {
        return true;
    }

}

La funzione effettua questi passaggi per effettuare l'upload del file:

  1. Controlla se il file locale esiste tramite la funzione file_exists().

  2. Ottiene il nome del file senza il suo percorso tramite la funzione basename().

  3. Stabilisce una connessione con il server FTP ed effettua il login con le credeenziali dell'utente. Se la connessione non può essere stabilita o se il login fallisce, restituisce false.

  4. Abilita la modalità di trasferimento passiva, raccomandata nella maggior parte dei casi.

  5. Effettua il comando FTP PUT che invia il file in modalità binaria, quindi chiude la sessione FTP.

  6. Restituisce infine un valore booleano che indica se l'upload ha avuto successo o meno.

Torna su