Advertisement
Guest User

Untitled

a guest
May 9th, 2017
94
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 3.09 KB | None | 0 0
  1. <?php
  2. class ftp{
  3.   private $host;
  4.   private $user;
  5.   private $pass;
  6.   public $conn_id;
  7.  
  8.   public $verbose;
  9.   function __construct($host,$user,$pass){
  10.     $this->host=$host;
  11.     $this->user=$user;
  12.     $this->pass=$pass;
  13.     $this->connect();
  14.   }
  15.   function connect(){
  16.     $this->conn_id = ftp_connect($this->host,21,3);
  17.    
  18.     if(!$this->conn_id){
  19.         return false;
  20.     }
  21.    
  22.     $login_result = @ftp_login($this->conn_id, $this->user, $this->pass);
  23.  
  24.      // Vérification de la connexion
  25.     if ((!$this->conn_id) || (!$login_result)) {
  26.         $this->verbose.="<div class='error'>La connexion FTP a échoué !</br>";
  27.         $this->verbose.="Tentative de connexion au serveur ".$this->host." pour l'utilisateur ".$this->user."</div>";
  28.     }
  29.     else {
  30.         $this->verbose.="<div class='notice'>Connexion au serveur ".$this->host.", pour l'utilisateur ".$this->user."</div>";
  31.     }
  32.   }
  33.   function chDir($dir){
  34.     $this->verbose.="<div class='notice'>Dossier courant : " . ftp_pwd($this->conn_id) . "\n";
  35.     $res=ftp_chdir($this->conn_id, $dir);
  36.     // Tentative de modification du dossier en "somedir"
  37.     if ($res) {
  38.         $this->verbose.="Le dossier courant est maintenant : " . ftp_pwd($this->conn_id) . "\n";
  39.     } else {
  40.         $this->verbose.="Impossible de changer de dossier\n";
  41.         $this->mkdir($dir);
  42.         ftp_chdir($this->conn_id, $dir);
  43.     }
  44.     $this->verbose.="</div>";
  45.     return $res;
  46.   }
  47.   function ls(){
  48.     // Récupère la liste des fichiers de /
  49.     return ftp_rawlist($this->conn_id, ".");
  50.   }
  51.   function cat(){
  52.     return ftp_nlist($this->conn_id, ".");
  53.   }
  54.  
  55.   function flushVerbose(){
  56.     $out=$this->verbose;
  57.     $this->verbose="";
  58.     return $out;
  59.   }
  60.   function mtime($file){
  61.     //  Récupération de la date de dernière modification
  62.     $buff = ftp_mdtm($this->conn_id, $file);
  63.  
  64.     if ($buff != -1) {
  65.         return date("Y-m-d H:i:s.", $buff);
  66.     } else {
  67.         return false;
  68.     }
  69.   }
  70.   function mkdir($dir){
  71.     $res=ftp_mkdir($this->conn_id,$dir);
  72.     if ($res) {
  73.      $this->verbose.="<p class='notice'>Le dossier $dir a été créé avec succès\n</p>";
  74.     } else {
  75.      $this->verbose.="<p class='error'>Il y a eu un problème lors de la création du dossier $dir</p>\n";
  76.     }
  77.     return $res;
  78.   }
  79.   function put($file){
  80.    
  81.     if(is_file($file)){
  82.       $str=file_get_contents($file);
  83.       $baseName=basename($file);
  84.       $temp="temp/".$baseName;
  85.       file_put_contents($temp,$str);
  86.  
  87.     }
  88.     else return false;
  89.    
  90.     // Chargement d'un fichier
  91.     $destination_file=ftp_pwd($this->conn_id) ."/". $baseName;
  92.     $upload = ftp_put($this->conn_id, $destination_file, $temp, FTP_BINARY);
  93.  
  94.     // Vérification du status du chargement
  95.     if (!$upload) {
  96.             $this->verbose.="<div class='error'>Le chargement FTP a échoué!</div>";
  97.         } else {
  98.             $this->verbose.="<div class='notice'>Chargement de $file vers ".$this->host." en tant que $destination_file</div>";
  99.         }
  100.   }
  101.  
  102.    function __destruct(){
  103.       // Fermeture du flux FTP
  104.       @ftp_close($this->conn_id);
  105.     }
  106. }
  107. ?>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement