File "upload02.php"

Full Path: /home/analogde/www/FTP/Monsta-FTP-master/Essai FTP/upload02.php
File size: 2.93 KB
MIME-type: text/x-php
Charset: utf-8

<?php
// Informations pour la connexion FTP


$ftp_server = "ftp.cluster011.hosting.ovh.net";
$ftp_user = "analogde";
$ftp_password = "rainbow";

$ftp_directory = "/repertoire_destination"; // Répertoire cible sur le serveur FTP

$ftp_directory = "~/www/PATRICE";

//$ftp_directory = "/www/PATRICE";


// Vérification de l'upload
if (isset($_FILES['fichier']) && $_FILES['fichier']['error'] === UPLOAD_ERR_OK) {
    $fichierTmp = $_FILES['fichier']['tmp_name']; // Chemin temporaire du fichier
    $nomFichier = $_FILES['fichier']['name'];     // Nom d'origine du fichier

    // Connexion au serveur FTP
    $ftp_conn = ftp_connect($ftp_server) or die("Impossible de se connecter à $ftp_server");
    $login = ftp_login($ftp_conn, $ftp_user, $ftp_password);

    if (!$login) {
        die("Échec de l'authentification FTP.");
    }

    echo " Connexion OK " ."<br>";

    // Basculer vers le répertoire cible
    ftp_chdir($ftp_conn, $ftp_directory);

    echo "------->>>> " .ftp_pwd($ftp_conn) ."<br>";

    // Vérification de l'existence du fichier
    $fichierFinal = $nomFichier;
    $version = 1;

    while (ftp_size($ftp_conn, $fichierFinal) != -1) {
        // Si le fichier existe, incrémenter la version
        $extension = pathinfo($nomFichier, PATHINFO_EXTENSION);
        $nomBase = pathinfo($nomFichier, PATHINFO_FILENAME);
        $version++;
        $fichierFinal = $nomBase . "_" . str_pad($version, 2, "0", STR_PAD_LEFT) . "." . $extension;

        echo "TRACE1 " .$fichierFinal ."<br>";
    }


    
    echo "Envoie2 " .$fichierFinal ."   " .$fichierTmp  ."<br>";


    $fp1 = createTempFileName($nomFichier);


    
    // Envoi du fichier sur le serveur FTP

//    Fp1 /tmp/map.pngNdrzNY
//    Fp2 - C ~/www/Document_workarea/patrice/map.png

    $fp2 = $ftp_directory . "/" . $nomFichier;

    //$fp2 = $_SESSION["dir_current"] . "/" . $file_name;

    echo " ++++ " .$fp1 ."<br>";
    echo " ++++ " .$fp2 ."<br>";


    //if (ftp_put($ftp_conn, $fichierFinal, $fichierTmp, FTP_BINARY)) 
    //if (ftp_put($ftp_conn, $fichierFinal, $fichierTmp, FTP_BINARY)) 


    $inputHandler = fopen('php://input', "r");

    $fileHandler = fopen($fp1, "w+");

    echo "Handler " .$fileHandler ."<br>";

    while (FALSE !== ($buffer = fgets($inputHandler, 65536))) 
    {
        fwrite($fileHandler, $buffer);
    }
    
    fclose($inputHandler);
    fclose($fileHandler);


    if( ftp_put($conn_id, $fp2, $fp1, FTP_BINARY) )
    {
        echo "Fichier uploadé avec succès sous le nom : $fichierFinal";
    } else {
        echo "Erreur lors de l'upload du fichier.";
    }

    // Fermeture de la connexion FTP
    ftp_close($ftp_conn);
} else {
    echo "Aucun fichier n'a été envoyé ou une erreur s'est produite.";
}


function createTempFileName($file_name)
{

    global $serverTmp;

    if ($serverTmp == "")

        $serverTmp = ini_get('upload_tmp_dir') ? ini_get('upload_tmp_dir') : sys_get_temp_dir();

    

    return tempnam($serverTmp, $file_name);

}

?>