Préfixe (dossier parent) du fichier * @file Pointeur vers $_FILES[''] * * @return error Retourne l'erreur attestant de l'état de l'upload * */ private static function simpleFile($prefix, $file){ /* [0] On formatte les entrées =========================================================*/ $prefix = htmlspecialchars($prefix); // Si $prefix n'est pas au bon format if( !preg_match('/^[a-z0-9_-]+$/', $prefix) ) return ManagerError::UploadError; /* [1] Chargement du fichier de config =========================================================*/ /* (1) On récupère le fichier */ $uploadAuthResource = new ResourceDispatcher('f/json/upload-auth/conf'); /* (2) Si une erreur pour le fichier de conf */ if( $uploadAuthResource->error != ManagerError::Success ) return $uploadAuthResource->error; /* (3) On récupère la config sous forme de tableau */ $uploadAuth = json_decode( $uploadAuthResource->getContent(), true ); /* (4) Si erreur de PARSAGE */ if( $uploadAuth == null ) return ManagerError::ParsingFailed; /* [2] Vérification du préfixe =========================================================*/ // Si le préfixe n'est pas dans la config -> erreur if( !in_array($prefix, $uploadAuth['directories']) ) returnManagerError::UploadError; /* [3] Construction du chemin =========================================================*/ /* (1) On construit le chemin */ $path = __ROOT__.$uploadAuth['root'].'/'.$prefix.'/'; /* (2) On crée le dossier s'il n'existe pas */ if ( !file_exists($path) ) mkdir($path, 0775, true); /* (3) On construit le nom du fichier */ $fileName = $_SESSION['username'].'.'; // Nom $fileName .= pathinfo($file['name'], PATHINFO_EXTENSION); // Extension /* (4) On se place dans le dossier */ chdir( $path ); /* [4] Création du fichier (temporaire->permanent) =========================================================*/ if( move_uploaded_file($file['tmp_name'], $path.$fileName) ){ // on modifie les droits du fichier chmod($path.$fileName, 0774); return ManagerError::Success; }else return ManagerError::UploadError; } /* IMPORT D'UN JOURNAL D'APPEL * * @file Pointeur vers $_FILES[''] * */ public static function call_log($params){ extract($params); return array( 'ModuleError' => self::simpleFile('call_log', $file) ); } } ?>