Beispiel #1
0
 /**
  * Méthode qui envoi un fichier sur le serveur
  *
  * @param	dir		répertoire de lecture
  * @param	files	données sur les fichiers à uploader de type $_FILES
  * @param	medias	type de medias uploadé (images ou documents)
  * @return  msg		message contenant le résultat de l'envoie du fichier
  * @author	Stephane F
  **/
 public function upload($dir, $files, $medias)
 {
     $nbfile = 0;
     if (($nbfiles = sizeof($files['name'])) > 0) {
         for ($numfile = 0; $numfile < $nbfiles; $numfile++) {
             if ($files['name'][$numfile] != '') {
                 # controle de l'extension du fichier si envoie d'une image
                 $ext = strtolower(strrchr(basename($files['name'][$numfile]), '.'));
                 if ($medias == 'images' and !in_array($ext, array('.gif', '.jpg', '.png'))) {
                     $msg_error = 'V&eacute;rifiez le format de vos images: gif, jpg et png uniquement';
                 } elseif ($medias == 'documents' and (substr($ext, 0, 4) == '.php' or in_array($ext, array('.cgi')))) {
                     $msg_error = "Type de fichier non autoris&eacute;: php, cgi";
                 } else {
                     # On teste l'existence du fichier et on formate le nom du fichier
                     $i = 0;
                     $upFile = $this->path . $dir . '/' . plxUtils::title2filename(basename($files['name'][$numfile]));
                     while (file_exists($upFile)) {
                         $upFile = $this->path . $dir . '/' . $i . plxUtils::title2filename(basename($files['name'][$numfile]));
                         $i++;
                     }
                     if ($files['size'][$numfile] > $this->maxUpload['value']) {
                         $msg_error = 'La taille d\'un fichier est sup&eacute;rieure &agrave; ' . $this->maxUpload['display'];
                     } elseif (!@move_uploaded_file($files['tmp_name'][$numfile], $upFile)) {
                         # Erreur de copie
                         $msg_error = 'Impossible d\'envoyer les fichiers (probl&egrave;me d\'&eacute;criture dans le dossier)';
                     } else {
                         # Ok
                         @chmod($upfile, 0644);
                         @plxUtils::makeThumb($upFile, $upFile . '.tb', $this->miniWidth, $this->miniHeight, $this->imgQuality);
                         @chmod($upfile . '.tb', 0644);
                         $nbfile++;
                     }
                 }
             }
             # Si erreur détectée on retourne le message
             if (!empty($msg_error)) {
                 return plxMsg::Error($msg_error);
             }
             if (!empty($msg_info)) {
                 return plxMsg::Info($msg_info);
             }
         }
         if ($nbfile > 1) {
             return plxMsg::Info('Fichiers envoy&eacute;s avec succ&egrave;s');
         } else {
             return plxMsg::Info('Fichier envoy&eacute; avec succ&egrave;s');
         }
     }
 }
 /**
  * Méthode qui recréer les miniatures
  *
  * @param   files		liste des fichier à déplacer
  * @param	width		largeur des miniatures
  * @param	height		hauteur des miniatures
  * @return  boolean		faux si erreur sinon vrai
  * @author	Stephane F
  **/
 public function makeThumbs($files, $width, $height)
 {
     $count = 0;
     foreach ($files as $file) {
         $file = basename($file);
         if (is_file($this->path . $this->dir . $file)) {
             $thumName = plxUtils::thumbName($file);
             $ext = strtolower(strrchr($this->path . $this->dir . $file, '.'));
             if (in_array($ext, array('.gif', '.jpg', '.png'))) {
                 if (plxUtils::makeThumb($this->path . $this->dir . $file, $this->path . $this->dir . $thumName, $width, $height, 80)) {
                     $count++;
                 }
             }
         }
     }
     if (sizeof($files) == 1) {
         if ($count == 0) {
             return plxMsg::Error(L_PLXMEDIAS_RECREATE_THUMB_ERR);
         } else {
             return plxMsg::Info(L_PLXMEDIAS_RECREATE_THUMB_SUCCESSFUL);
         }
     } else {
         if ($count == 0) {
             return plxMsg::Error(L_PLXMEDIAS_RECREATE_THUMBS_ERR);
         } else {
             return plxMsg::Info(L_PLXMEDIAS_RECREATE_THUMBS_SUCCESSFUL);
         }
     }
 }