La base de données des scripts PHP - ASP & PERL
Programmation Web Hebergement

PHP ASP PERL

Gratuit Mutualisé Dédié
Rechercher


 
membres
S'inscrire

Mail : 
Passe : 
oublié ?
 
services
Développement
Kits graphiques
E.JavaScript
Domaines
Referencement
 
comscripts
Scripts PHP
Scripts ASP
Scripts PERL
Sources PHP
Sources ASP
Sources PERL
Les Ateliers
 
ressources
Les Livres
Forums
Liens
Faire un lien
Refrapide
 
partenaires
Kits Graphiques
CréEr Son Site
Easy-Script.Com
Pc Land
Annu Marseille
Mon Webdesign
Bons Plans Du N
Who Is Using
Sarl L.M.2.I.
Je Javascript
AeroModelisme
Votre site ?

Vérifier la disponibilité d'un nom de domaine


Class d'upload  
 Informations rapides
Catégorie : PHP Auteur : Anduriel
Sous-Catégorie : Fichiers Ajouté le : 16-01-2006
Langage : PHP  CSID : S288
Visites de la page : 5609    

 Informations détaillées
Description :

Cette class vous facilitera surement l'upload de fichier sur des serveurs distants, ou locaux. Une note imporante: n'oubliez pas le champs MAX_FILE_SIZE

Portion de code

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
<?php
/**********************************************************/
/*  Class FileManager par Krak @ Anduriel
/*  Tout droit réservé 2006
/*  http://killtrees.free.fr
**********************************************************/


define ("FTP_CONNECTSSL_FAILED", "<b>Erreur critique:</b> connection au serveur 
impossible. Vérifiez si l' OpenSSL est installé.");

define ("FTP_CONNECT_FAILED", "<b>Erreur critique:</b> connection au serveur imp
ossible.");

define ("LOGIN_FAILED", "<b>Erreur critique:</b> impossible de se connecter, vér
ifiez les paramètres d'accès.");

define ("NO_FILE_UPLOADED", "<b>Erreur:</b> le fichier n'a pas été téléchargé su
r le serveur.");

define ("ERR_FILESIZEINI", "<b>Erreur:</b> la taille d'un des fichiers dépasse l
a limite fixée dans votre php.ini.");

define ("ERR_FILESIZE", "<b>Erreur:</b> la taille d'un des fichiers dépasse la l
imite fixé par le formulaire.");

define ("ERR_PARTIALDL", "<b>Erreur:</b> un des fichiers a été téléchargé partie
llement dans le dossier temporaire.");

define ("ERR_NOFILEDL", "<b>Erreur:</b> un des fichiers n'a pas été téléchargé d
ans le dossier temporaire");

define ("ERR_NOFOLDER", "<b>Erreur:</b> dossier temporaire introuvable.");
define ("ERR_CANTWRITE", "<b>Erreur:</b> impossible d'écrire le fichier dans le 
dossier temporaire.");

define ("CANT_CHANGEDIR", "<b>Erreur:</b> impossible d'entrer dans le dossier ")
;
define ("CANT_CREATEDIR", "<b>Erreur:</b> impossible de créer le dossier demandé
.");

define ("SSL_NOTINSTALLED", "<b>Erreur:</b> l'ouverture sécurisée SSL n'est pas 
disponible.");

define ("CANT_DELETEFILE", "<b>Erreur:</b> impossible de supprimer le fichier sp
écifié.");

define ("INVALID_FILE", "<b>Erreur:</b> fichier spécifié invalide ou introuvable
.");

define ("NO_DELETE", "<b>Erreur:</b> fichier non supprimé. Il se peut qu'aucun d
ossier n'ait été spécifié.");

define ("CANT_CHMOD", "<b>Erreur:</b> impossible de changer le chmod du dossier/
fichier spécifié.");

define ("CANT_RENAME", "<b>Erreur:</b> impossible de changer le nom du dossier s
pécifié.");

define ("CANT_LIST", "<b>Erreur:</b> impossible de lister le répertoire.");

class FileManager {
   var $envars;
   var $openftp;
   var $file_destination = '.';
   var $force;
  
  /*****************************************************************************
*********/

  /* Function d'enregistrement des variables
  /* setftpvars(urlserver, accessname, acesspass [, mode])
  /*  - urlserver = url du ftp sans www et sans slasch (ftpperso.free.fr)
  /*  - accessname = pseudo de connection
  /*  - accessspass = mot de passe de connection
  /*  - mode = Tranfert des fichiers: ASCII ou BINARY
  /*****************************************************************************
********/

   function setftpvars($server, $username, $userpass, $mode="ASCII") {
      $this->envars['ftp_server'] = $server;
      $this->envars['ftp_pass'] = $userpass;
      $this->envars['ftp_login'] = $username;
      $this->envars['ftp_transfert'] = constant('FTP_'.$mode);
   }
  /*****************************************************************************
*********/

  /* Se place dans un dossier spécifique
  /* setftpdir(dir, force)
  /*  - dir = dossier dans lequel charger les fichiers
  /*  - force = crée le dossier s'il est inexistant
  /*****************************************************************************
********/

   function setftpdir($dir, $force=false) {
      $this->file_destination = $dir;
      $this->force = $force;
   }
  /*****************************************************************************
*********/

  /* Créé un dossier
  /* createdir(dir [, chmod] [, dest])
  /*  - dir = dossier à crée
  /*  - chmod = droit d'accès au dossier. Par défaut 0777
  /*  - dest = true pour créer sur un serveur distant
  /*****************************************************************************
********/

   function createdir($dir, $chmod=0777, $dest=false) {
      if (!is_dir($dir) && $dest == false) {
         @mkdir($dir, $chmod) or die (CANT_CREATDIR);
      }
     elseif (!is_dir($dir) && $dest != false) {
         @ftp_mkdir($this->openftp, $dir) or die (CANT_CREATDIR);
      }
   }
  /*****************************************************************************
*********/

  /* Function de connection à un serveur distant
  /* opensslftp(openmode)
  /*  - openmode = true pour une ouverture sécurisée SSL
  /*****************************************************************************
********/   

   function openftp($sslopen=false) {
      if ($sslopen == true) {
         if (!function_exists("ftp_ssl_connect")) {
            echo SSL_NOTINSTALLED;
            exit;
         }
         if (!$this->openftp = @ftp_ssl_connect($this->envars['ftp_server'])) {
            echo FTP_CONNECTSSL_FAILED;
            exit;
         }
      } else {
         if (!$this->openftp = @ftp_connect($this->envars['ftp_server'])) {
            echo FTP_CONNECT_FAILED;
            exit;
         }
      }
      @ftp_login($this->openftp, $this->envars['ftp_login'], $this->envars['ftp_
pass']) or die (LOGIN_FAILED);

   }
  /*****************************************************************************
*********/

  /* Charge les fichiers issus d'un formulaire
  /* uploadfiles(input, destination)
  /*  - input = nom du champ de type file. Il peut être un tableau.
  /*  - destination = true pour les charger sur un serveur distant
  /*****************************************************************************
********/     

   function uploadfiles($inputname="", $specialftp="") {
      if (!empty($_FILES[$inputname])) {
         foreach($_FILES[$inputname]['name'] As $key =$file) {
            if ($file != '') {
               $lastfile = ' (Fichier concerné: <b>'.htmlspecialchars($file).'</
b>)<br>';

               switch($_FILES[$inputname]['error'][$key]) {
                  case 1:
                     echo ERR_FILESIZEINI.$lastfile;
                     exit;
              case 2:
                    echo ERR_FILESIZE.$lastfile;
                    exit;
                  case 3:
                     echo ERR_PARTIALDL.$lastfile;
                     exit;
                  case 4:
                     echo ERR_NOFILEDL.$lastfile;
                     exit;
                  case 6:
                     echo ERR_NOFOLDER.$lastfile;
                     exit;
                  case 7:
                     echo ERR_CANTWRITE.$lastfile;
                     exit;
                  defaultbreak;
               }
               $filename = basename($_FILES[$inputname]['name'][$key]);
               if (empty($specialftp)) {
                  if ($this->force == true) $this->createdir($this->file_destina
tion);
                  if (!$is_moved = @move_uploaded_file($_FILES[$inputname]['tmp_
name'][$key], $this->file_destination.'/'.$filename)) {

                     echo NO_FILE_UPLOADED.$lastfile;
                  }
               } else {
                  $fp = fopen($_FILES[$inputname]['tmp_name'][$key], 'r');
                  if ($this->force == true) $this->createdir($this->file_destina
tion, 0777, true);
                  @ftp_chdir($this->openftp, $this->file_destination) or die(CAN
T_CHANGEDIR.$this->file_destination);
                  if (!$is_moved = @ftp_fput($this->openftp, $filename, $fp, $th
is->envars['ftp_transfert'])) {
                     echo NO_FILE_UPLOADED.$lastfile;
                  }
                  else {
                     fclose($fp);
                  }
               }
            }
         }
      }
   }
  /*****************************************************************************
*********/

  /* Supprime un fichier ou des fichiers
  /* deletetfile(file [, destination]])
  /*  - file = fichier à supprimer. Pour plusieurs fichiers metter un tableau
  /*    Ce fichier sera supprimé du dossier setftpdir() si le dossier n'est pas 
spécifié
  /*    dans un tableau:
  /*    => array('file1.txt' => 'dir/dir', 'file2.exe' => '../dir2', 'file3.html
')
  /*  - destination = true pour les supprimer d'un serveur distant
  /*****************************************************************************
********/

   function deletefile($file, $specialftp="") {
      $lastfile = (!is_array($file)) ? ' (Fichier concerné: <b>'.htmlspecialchar
s($file).'</b>)<br>' : ' (Tableau de fichier)';
  if (!is_array($file) && is_file($this->file_destination.'/'.$file)) {
     if (empty($specialftp)) {
        return @unlink($this->file_destination.'/'.$file) or die (CANT_DELETEFIL
E.$lastfile);
     } else {
        return @ftp_delete($this->openftp, $this->file_destination.'/'.$file) or
 die (CANT_DELETEFILE.$lastfile);
     }
  }
  elseif (is_array($file)) {
     foreach($file as $dir =$to_delete) {
        $lastfile = ' (Fichier concerné: <b>'.htmlspecialchars($to_delete).'</b>
)<br>';

        $dir = (is_numeric($dir)) ? $this->file_destination : $dir;
        if (is_file($dir.'/'.$to_delete)) {
           if (empty($specialftp)) {
              @unlink($dir.'/'.$to_delete) or die (CANT_DELETEFILE.$lastfile);
           } else {
              @ftp_delete($this->openftp, $dir.'/'.$to_delete) or die (CANT_DELE
TEFILE.$lastfile);
           }
        } else {
           echo INVALID_FILE.$lastfile;
        }
     }
  }
  else {
     echo NO_DELETE.$lastfile;
  }
   }
  /*****************************************************************************
*********/

  /* Change le Chmod d'un dossier ou d'un fichier
  /* changechmoddir(dir, chmod, destination)
  /*  - dir = dossier dont le chmod est à modifier
  /*  - chmod = droit d'accès au dossier.
  /*  - destination = true si le fichier ou dossier est sur un serveur distant
  /*****************************************************************************
********/

   function changechmod($filedir, $chmod, $specialftp="") {
      if (empty($specialftp)) {
         @chmod($filedir, $chmod) or die (CANT_CHMOD);
      }
      else {
         @ftp_chmod($this->openftp, $filedir, $chmod) or die (CANT_CHMOD);
      }
   }
  /*****************************************************************************
*********/

  /* Renomme un dossier/fichier
  /* changenamedir(dirfile, newname, destination)
  /*  - dirfile = dossier/fichier dont le nm est à modifier
  /*  - newname = nouveau nom
  /*  - destination = true si le fichier ou dossier est sur un serveur distant
  /*****************************************************************************
********/

   function changename($dirfile, $name, $specialftp="") {
      if (empty($specialftp)) {
         @rename($dirfile, $name) or die (CANT_RENAME);
      }
      else {
         @ftp_rename($this->openftp, $dirfile, $name) or die (CANT_RENAME);
      }
   }
  /*****************************************************************************
*********/

  /* Liste un répertoire
  /* listrepertory(repertory, destination)
  /*  - destination = true si le dossier est sur un serveur distant
  /*****************************************************************************
********/

   function listrepertory($repertory, $specialftp="") {
      if (empty($specialftp)) {
         if ($handle = @opendir($repertory)) {
            while (false !== ($file = @readdir($handle))) {
               if ($file != "." && $file != "..") {
                  if (is_file($file)) $prefix = ' (fichier)';
                  if (is_dir($file)) $prefix = ' (dossier)';
                  echo '- '.$file.$prefix.'<br>';
               }
           }
         closedir($handle);
         } else echo CANT_LIST;
      }
      else {
         $contents = ftp_nlist($this->openftp, '.');
         var_dump($contents);
         foreach ($contents AS $file) {
            if (is_file($file)) $prefix = 'Type: fichier, nom: ';
            if (is_dir($file)) $prefix = 'Type: dossier, nom: ';
            echo $prefix.$file.'<br>';
         }
      }
   }
}



 Les Commentaires

Soyez le premier à rédiger un commentaire sur ce code source !

Ajouter  

 Informations & Services  

Je désire recevoir ce code source par email.
Je désire recevoir la Newsletter de ComScripts.

Newsletter
89 562 abonnés

Autre Sources
 Fichiers
- Liste des fi.
- Uploader un .
- Lire le cont.
- Contenu d'un.
- Lister la st.

Tips
 Fichiers
ASP (3)
PERL (2)

Configuration IP des routeurs Cisco


  Le bon plan du moment  

Gen. en 0.291sec. Retour à la page d'accueil
Copyright © 2005 - Visialis - RCS Nanterre 478 885 122 - Tous droits réservés - Nous contacter haut de page

Valid XHTML 1.0! Valid CSS!