<?php

// ------------------------------------------------------------------------- //
// Transfert FTP.                                                            //
// ------------------------------------------------------------------------- //
// Auteur: hoedic                                                            //
// Email:  hoedic78@yahoo.fr                                                 //
// Web:    http://yellowstone.free/                                          //
// ------------------------------------------------------------------------- //

?>

<!-- LE FORMULAIRE :
///////////////////////////// -->

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<body bgcolor="#FFFFFF">
<p>&nbsp;</p>
<form method="post" action="zz.php3" name="blop">
  <p>Serveur : <input type="text" name="serveur">
    <br>
    Login : <input type="text" name="login">
    <br>
    Mot de passe <input type="password" name="pass">
  </p>
  <p>Liste des fichiers dispo dans le r&eacute;pertoire actuel :
    <select name="source">
      <?
//Ouverture du répertoire du fichier dans lequel s'execute le script
$ouvert = opendir('.');

// Listing des fichiers du répertoire et on les affiche dans le menu
while ($file = readdir($ouvert))
echo
'<option value="'. "$file" . '">' . "$file" . '</option>';
?>
    </select>
  </p>
  <p>Nom que vous voulez lui donner dans le r&eacute;pertoire distant
    <input type="text" name="remote" size="50">
  </p>
  <p>Type de connexion
    <select name="typ">
      <option value="FTP_ASCII">ASCII</option>
      <option value="FTP_BINARY">Binaire</option>
    </select>
  </p>
  <p>
    <input type="submit" name="Submit" value="Submit">
  </p>
</form>
</body>
</html>


<!-- LE SCRIPT FTP
//////////////////////////// -->
<?php
// Toutes les variable viennent du formulaire

//adresse du serveur ftp.toto.com
$ftp_server = $HTTP_POST_VARS[serveur];

// Login et mot de passe utilisateur
$ftp_user_name = $HTTP_POST_VARS[login];
$ftp_user_pass = $HTTP_POST_VARS[pass];

// Nom que l'on va donner au fichier distant
$destination_file = $HTTP_POST_VARS[remote];

// Nom du fichier local (choisit dans le menu déroulant
$source_file = $HTTP_POST_VARS[source];

// type de connexion ASCII ou binaire
$type = $HTTP_POST_VARS[typ];

//vérification des données
echo "fichier source $destination_file <BR>";
echo
"fichier destination $source_file <BR>";
echo
"type de connexion $type <BR>";

// création de la connexion
$conn_id = ftp_connect("$ftp_server");

// authentification avec nom de compte et mot de passe
$login_result = ftp_login($conn_id, "$ftp_user_name", "$ftp_user_pass");

// vérification de la connexion
if ((!$conn_id) || (!$login_result)) {
  echo
"La connexion FTP a échoué!";
  echo
"Tentative de connexion à $ftp_server en tant que $ftp_user_name";
  die;
} else {
  echo
"Connecté à $ftp_server, avec $user <BR>";
}

//changement de directory, si le répertoire n'existe pas, il faut le créer
ftp_chdir ($conn_id, "dir");
$dir = ftp_pwd($conn_id);

// téléchargement d'un fichier
$upload = ftp_put($conn_id, "$destination_file", "$source_file", $type);

// Vérification de téléchargement
if (!$upload) {
  echo
"Le téléchargement FTP échoué!";
} else {
  echo
"Téléchargement de $source_file sur $ftp_server $dir en $destination_file ";
}

// fermeture de la connexion FTP.
ftp_quit($conn_id);

?>