Esempio n. 1
0
 /**
  * Envoi une image sur le serveur avec la méthode upload
  * @param files $img
  * @param dir $path
  * @param bool $setOption
  * @param bool|\debug $debug $debug
  * @return null|string|\true
  */
 public static function uploadImg($img, $path, $setOption = false, $debug = false)
 {
     $error = null;
     $makefile = new filesystem_makefile();
     $firebug = new debug_firephp();
     if (is_array($setOption)) {
         if (array_key_exists('maxwidth', $setOption)) {
             $maxwidth = $setOption['maxwidth'];
         } else {
             $maxwidth = 2500;
         }
         if (array_key_exists('maxheight', $setOption)) {
             $maxheight = $setOption['maxheight'];
         } else {
             $maxheight = 2500;
         }
         if (array_key_exists('minheight', $setOption)) {
             $minheight = $setOption['minheight'];
         } else {
             $minheight = 5;
         }
         if (array_key_exists('minwidth', $setOption)) {
             $minwidth = $setOption['minwidth'];
         } else {
             $minwidth = 5;
         }
     } else {
         $maxwidth = 2500;
         $maxheight = 2500;
         $minheight = 5;
         $minwidth = 5;
     }
     /**
      * Envoi de l'image
      */
     if (isset($_FILES[$img])) {
         if ($_FILES[$img]['error'] == UPLOAD_ERR_OK) {
             if (self::imageValid($_FILES[$img]['tmp_name']) === false) {
                 $error .= 'Invalid image format (gif, png, jpeg only)';
             } else {
                 if (!is_readable($_FILES[$img]["tmp_name"])) {
                     //$tmp_img = chmod($_FILES[$img]["tmp_name"],0777);
                     $tmp_img = $makefile->chmod(array($_FILES[$img]["tmp_name"]), 0777);
                 } else {
                     $tmp_img = $_FILES[$img]["tmp_name"];
                 }
                 //if(chmod($_FILES[$img]["tmp_name"],0777)){
                 if (is_uploaded_file($_FILES[$img]["tmp_name"])) {
                     $source = $tmp_img;
                     $cible = component_core_system::basePath() . $path . '/' . http_url::clean($_FILES[$img]["name"]);
                     if (self::imgSizeMax($source, $maxwidth, $maxheight) == false) {
                         $error .= 'Exceeds the maximum size ' . $maxwidth . ' x ' . $maxheight;
                     } elseif (self::imgSizeMin($source, $minwidth, $minheight) == false) {
                         $error .= 'The file is too small: ' . $minwidth . ' x ' . $minheight;
                     } else {
                         if (!move_uploaded_file($source, $cible)) {
                             $error .= 'Error in temporary file';
                         } else {
                             if ($debug != false) {
                                 $firebug->group('Upload image infos');
                                 $firebug->log('Success', 'Status');
                                 $firebug->log($source, 'Source');
                                 $firebug->log($cible, 'Cible');
                                 $firebug->groupEnd();
                             }
                         }
                     }
                 } else {
                     $error .= 'Disk write error';
                 }
                 //}
             }
         } elseif (UPLOAD_ERR_INI_SIZE == true) {
             $error .= 'The file is too large';
         } elseif (UPLOAD_ERR_CANT_WRITE == true) {
             $error .= 'Disk write error';
         } elseif (UPLOAD_ERR_FORM_SIZE == true) {
             $error .= 'The file is too large: maximum size ' . $maxwidth . ' x ' . $maxheight;
         }
     } elseif (UPLOAD_ERR_NO_FILE == true) {
         $error .= 'No file';
     } else {
         $error .= 'Disk write error';
     }
     if ($error != null) {
         $n = $firebug->group('Upload image analyse');
         $n .= $firebug->log($error);
         $n .= $firebug->groupEnd();
     } else {
         $n = NULL;
     }
     return $n;
 }