/** * 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; }
private function setPath() { return component_core_system::basePath(); }