GESTIONNAIRE DE FICHIERS | MYSQL PHP 5.X {NEMENTON PHP MANAGER V0.5}

Signaler
Messages postés
291
Date d'inscription
vendredi 21 février 2003
Statut
Membre
Dernière intervention
13 mars 2015
-
Messages postés
2
Date d'inscription
vendredi 5 mars 2010
Statut
Membre
Dernière intervention
1 avril 2010
-
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/50423-gestionnaire-de-fichiers-mysql-php-5-x-nementon-php-manager-v0-5

Messages postés
2
Date d'inscription
vendredi 5 mars 2010
Statut
Membre
Dernière intervention
1 avril 2010

...
Bonsoir!

Je découvre le script! Bon...tant pis pour sa date de publication....

Bien sûr, le script gagnerait à être "découpé" pour une meilleure lisibilité et une meilleure maintenance....mais ce n'est là que l'avis d'un fouineur amateur!
Sinon, je pense que pour un autodidacte qui fait des scripts comme ça, y'a rien à dire que des bravos et des merci!
Ce script constitue un excellent exercice de réflexion et d'apprentissage...à adapter selon les besoins!
En effet, je trouve "la gestion des fichiers, une partie intéressante. Cependant, j'aimerai savoir s'il est possible de ne pas afficher les dossiers et répertoires du site.

Ainsi, peux-t-on n'afficher que l'arborescence des dossiers et fichiers créés par l'utilisateur et cacher les dossiers et repertoires du site?

Merci de m'orienter et très bonne continuation.
Messages postés
21
Date d'inscription
dimanche 27 janvier 2008
Statut
Membre
Dernière intervention
25 mai 2010

Ps : je viens de me rendre compte que mes liens associer aux image son erroné, en effet j'avais c/c la partie du code pour les dossiers, au clique il essaye donc de changer de dossier, pas de modifier le fichier image, a rectifier =p
Messages postés
21
Date d'inscription
dimanche 27 janvier 2008
Statut
Membre
Dernière intervention
25 mai 2010

Voila les modification que je te propose :

Petite modification dans la fonction explorer :

function explorer($dir, $recursif= false, $pattern=false)
{
$listeDossier = array();
$listeFichier = array();
$listeImage = array();
$pointeur = opendir($dir);while (false !($fichier readdir($pointeur))){
// On ne tiens pas conte du dossier courant
if(!in_array($fichier, array('.','..'))){
// Est ce que le fichier est un repertoire ?
// On n'oublie pas rajouter le chemin du fichier
if (is_dir($dir."/".$fichier)){
if($pattern) {
if ($recursif){
$listeFichier = array_merge($listeFichier, explorer($dir.'/'.$fichier, $recursif, $pattern));
}
}
else if($recursif){
// Recursif = oui ? alors explorons le !
$listeDossier = array_merge($listeDossier, explorer($dir.'/'.$fichier, $recursif));
}
else {
// C'est un dossier, on l'ajoute
$listeDossier[] = "$dir/$fichier";
}
}
else if ($pattern) {
// Mode recherche ? On l'ajoute seulement si la sous chaine recherché est presente
if (stristr($fichier, $pattern)){
$listeFichier[] = "$dir/$fichier";
}
}
else {
if (is_image($fichier)) {
$listeImage[] = "$dir/$fichier";
}
else {
// C'est un fichier, on l ajoute
$listeFichier[] = "$dir/$fichier";
}
}

}
}
// L'exploration est termnier, on ferme =p
closedir($pointeur);
// Trie par ordre alphabhetique
usort($listeImage, "strcasecmp");
usort($listeDossier, "strcasecmp");
usort($listeFichier, "strcasecmp");
// On retourne la liste des dossiers suivies des fichiers, fusion des tableaux $listeDossier && $listeFichier
return $listeDossier = array_merge($listeImage, array_merge($listeDossier, $listeFichier));
}

et petite modification dans la fonction listRepertoire :

function listRepertoire($dir=false, $recursif=false, $pattern=false)
{
// Récupération du chemin courant
$repCourant = getcwd();
if ($pattern == false)
{
if($dir !=false) {
$fichiers = explorer($dir, $recursif);
}
else {
$fichiers = explorer('.', $recursif);
}

}
else
{
$fichiers = explorer($dir, $recursif, $pattern);
if (empty($fichiers)) {
echo '<center> Aucun résultat pour la recherche de '.$pattern.' dans le dossier '.$dir;
}
else {
$nbr_resultat = count($fichiers);
echo "<center>$nbr_resultat fichiers trouvé pour l'occurance $pattern dans le dossier $dir";
}
}

// ajout ".." (qui a été filtré par la fonction)if ($repCourant !"/") $fichiers array_merge(array("./.."), $fichiers);
?>
<form action="<?php echo "http://".$_SERVER['SERVER_NAME'].$_SERVER['PHP_SELF']; ?>" method="post">

<?php echo $repCourant; ?>,
<?php echo round(disk_total_space("./")/pow(2,20), 1) . " / ". round(disk_free_space("./")/pow(2,20), 1). " Mo"; ?>,

Action |
Nom du fichier |
Taille |
Permissions |

<?php
for ($i =0; $i<count($fichiers); $i++)
{
?>
----

<?php
/* Le fichier est-il un répertoire ? */
if (is_image($fichiers[$i]))
{
?>
" /> [x]
" />[ Modifier ]
" />[ Télécharger ] ,
">
" alt="60" width="60" />
,
[Image],

<?php
}
else if (is_dir($fichiers[$i]))
{

?> \" /> [x]
\" />[ Modifier ]
\" />[ Télécharger ]
</td>
">
<?php echo "[ " .basename($fichiers[$i])." ]";?>
,
[Dossier],

<?php
}else{

?>
\" /> [x]
\" />[ Modifier ]
\" />[ Télécharger ]
</td>
<?php

echo ''.basename($fichiers[$i]).'';

?>,
<?php echo tailleFichier($fichiers[$i]); ?>,
<?php
}
?>
<?php echo afficherPerm($fichiers[$i]); /*pour plus tard */?>,

<?php
}
?>

<?php
}

En gros, je rajoute un array listeImage dans la fonction explorer que je fusionne ensuite avec les array listeDossier et listeFichier ce qui nous donne une "arborescence"

-Image
-Dossier
-Fichier

Et je rajoute une structure de contrôle dans la fonction listRepertoire, pour gérer l'affichage de mes images

(Merci en tout cas, c'est une excellente qui idee, que je vais continuer a retravailler =p)
Messages postés
21
Date d'inscription
dimanche 27 janvier 2008
Statut
Membre
Dernière intervention
25 mai 2010

Bonjours,

Je ne suis pas sur d'avoir compris ce que tu désir faire, veut tu pouvoir afficher une image (Au lieu de son texte "encodé" (effectivement difficile de trouver le bon mot), lorsque dans la parti "Gestionnaire de fichier" tu clique sur son lien pour le modifier ?

Si oui, voila ce que je te propose :

Tout d'abord cree une fonction disons is_image() pour vérifier si le fichier passer en paramètre est une image :

function is_image($data){
$fichier = substr($data, -3);
if ($fichier == "gif" ||
$fichier == "jpg" ||
$fichier == "png" ||
$fichier == "jpeg" ||
$fichier == "PNG" ||
$fichier == "GIF" ||
$fichier == "JPG") {

return true;

}
else {
return false;
}
}

Pour ensuite de modifier la partie adéquate, verifier si fichier est une image, si oui l'afficher, si non, afficher le textarea :

<fieldset id="modif"><legend> Modification d'un fichier </legend>
<form method ="post" action="http://<?php echo $_SERVER['SERVER_NAME'].$_SERVER['PHP_SELF']; ?>">
" name="repertoire" />

" name="nom" />
<?php if (is_image($fichier)) { // Si le fichier est une image, on l'affiche
echo '<center></center>';
}
else {
?> <textarea name="contenu" style="width:100%; height:250px;"><?php if (isset($erreur)) { echo $erreur; } else {
// Sinon on affiche le contenu du potentiellement texte
echo htmlentities($contenu);
} ?> </textarea>
<?php }
?>

</form>
</fieldset>

Ensuite, si c'est dans le gestionnaire lui meme, que tu veut faire apparaitre les image, je pense la qu'il faut modifier la fonction explorer, pour rajouter un array contenant toutes les images (ceci toujours grâce a l'aide de la fonction is_image()) (Bon je me donne un moment histoire de me replonger dans le code est je post cela, dis moi si je me trompe totalement :p)
Afficher les 12 commentaires