Lister des répetoires en php [Résolu/Fermé]

Signaler
Messages postés
407
Date d'inscription
lundi 25 juillet 2016
Statut
Membre
Dernière intervention
6 février 2020
-
Messages postés
407
Date d'inscription
lundi 25 juillet 2016
Statut
Membre
Dernière intervention
6 février 2020
-
Bonjour,
J'aimerai afficher de façon recursives des dossiers afin d'afficher des fichiers avec l'extension PDF. J'ai récupéré sur le net ce script qui est super. Bien entendu je n'aurai pas été assez compétent pour le créer alors merci à celui qui l'a mis à disposition. Par contre ce que je ne comprends pas c'est pourquoi lorsque je clique sur le lien cela me renvoie comme si je n'avais de page index en fait. "index of/ au lieu de rester sur la même page mais l'arborescence ce fait très bien.
Pouvez vous me donner votre avis si cela viens du script ou de ma structure du site.
Je vous remercie.
        $dir_nom = 'fichiers';
        //cette fonction ouvre le dossier
        $dir = opendir($dir_nom) or die('Erreur de listage : le répertoire n\'existe pas');
        $fichier= array();
        $dossier= array();
            
            //cette fonction lit une entrée du dossier
            while($element = readdir($dir)) {
                if($element != '.' && $element != '..') {
                    //cette fonction indique si le fichier est un dossier
                    if (!is_dir($dir_nom.'/'.$element)) {
                        $fichier[] = $element;
                    }
                    else {$dossier[] = $element;
                    }
                }
            }

        closedir($dir);
if(!empty($dossier)) {
	sort($dossier); // pour le tri croissant, rsort() pour le tri décroissant
	echo "Liste des dossiers accessibles dans '$dir_nom' : \n\n";
	echo "\t\t<ul>\n";
		foreach($dossier as $lien){
			echo "\t\t\t<li><a href=\"$dir_nom/$lien \">$lien</a></li>\n";
		}
	echo "\t\t</ul>";
}
if(!empty($fichier)){
	sort($fichier);// pour le tri croissant, rsort() pour le tri décroissant
	echo "Liste des fichiers/documents accessibles dans '$dir_nom' : \n\n";
	echo "\t\t<ul>\n";
		foreach($fichier as $lien) {
			echo "\t\t\t<li><a href=\"$dir_nom/$lien \">$lien</a></li>\n";
		}
	echo "\t\t</ul>";
 }



3 réponses

j'ai testé le script il marche très bien.

ma structure:
listing-fichiers.php
fichiers/img.jpg
fichiers/img1.jpg
fichiers/img2.jpg

en affichage j'ai :

Liste des fichiers/documents accessibles dans 'fichiers' :

img.jpg
img1.jpg
img2.jpg

Tu dois avoir un problème de configuration avec ton serveur. Un .htaccess qui traîne quelque part ou simplement la configuration du serveur pour le listing des dossiers ?
Messages postés
407
Date d'inscription
lundi 25 juillet 2016
Statut
Membre
Dernière intervention
6 février 2020
29
Bonjour
En fait je me suis aperçu que lorsque j'ai des fichiers dans le dossier "$dir_nom" ça fonctionne mais quand il y a des sous dossiers l'url n'est pas bonne.
Je vous remercie si pour pouvez me donner une explication.
tu n'as pas de boucle pour les sous-dossiers.
Messages postés
407
Date d'inscription
lundi 25 juillet 2016
Statut
Membre
Dernière intervention
6 février 2020
29
Bonjour
je vous remercie tout est rentré dans l'ordre.