Lister des répetoires en php

Résolu
LaChaux78 Messages postés 585 Date d'inscription   Statut Membre Dernière intervention   -  
LaChaux78 Messages postés 585 Date d'inscription   Statut Membre Dernière intervention   -
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

  1. Lakano
     
    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 ?
    0
  2. LaChaux78 Messages postés 585 Date d'inscription   Statut Membre Dernière intervention   32
     
    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.
    0
    1. Lakano
       
      tu n'as pas de boucle pour les sous-dossiers.
      0
  3. LaChaux78 Messages postés 585 Date d'inscription   Statut Membre Dernière intervention   32
     
    Bonjour
    je vous remercie tout est rentré dans l'ordre.
    0