Lister les fichiers d'un répertoire et les ouvrir / php [Fermé]

Signaler
Messages postés
3
Date d'inscription
lundi 4 août 2014
Statut
Membre
Dernière intervention
5 août 2014
-
Messages postés
6312
Date d'inscription
vendredi 15 janvier 2010
Statut
Membre
Dernière intervention
19 avril 2021
-
Salut tout le monde, je suis débutant avec php, et j'ai un problème, j'accède àun répertoire et je liste touts les fichiers dans ce dernier, ou je me bloque c'est dans le fait que dans les fichiers affichés je veux cliquer sur un et avoir son contenu affiché, à quoi j'ai pensé c'est d'avoir une variable qui stocke les noms des fichiers mais je ne sais pas comment le faire.

PS: le repertoire est changé régulièrement avec l'ajout de nouveaux fichiers.


le code pour lister les fichiers dans le répertoire est le suivant:



<form method="post" action="form.php" enctype="multipart/form-data"><p align="center">
<font color="white">
<input type="submit" name="selectionner" value="lister le repertoire" >

</font></p>
</form>

<?php
if(isset($_POST['selectionner'])){
$dirname = 'chemin_du_répertoire';
$dir = opendir($dirname);

while($file = readdir($dir)) {
if($file != '.' && $file != '..' && !is_dir($dirname.$file))
{
echo '- <a href="'.$dirname.$file.'">'.$file.'</a>'.'<br /><br />';
}
}

closedir($dir); }
?>

1 réponse

Messages postés
6312
Date d'inscription
vendredi 15 janvier 2010
Statut
Membre
Dernière intervention
19 avril 2021
1 513
slt

pourquoi un formulaire ?
tu étais bien parti, mais pas besoin de formulaire pour lister le contenu et mettre les fichiers en liens, simplement:

<?php
$dirname = 'ton_dossier';
$dir = opendir($dirname);

while($file = readdir($dir)) {
if($file != '.' && $file != '..' && !is_dir($dirname.$file))
{
echo '<a href="'.$dirname.'/'.$file.'">'.$file.'</a>'.'<br /><br />';
}
}

closedir($dir);
?>

Signature
2
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 65492 internautes nous ont dit merci ce mois-ci

Messages postés
3
Date d'inscription
lundi 4 août 2014
Statut
Membre
Dernière intervention
5 août 2014

c'est que j'ai pris cette partie du code d'un plus grand et dans mon code j'utilise des boutons :)
Messages postés
6312
Date d'inscription
vendredi 15 janvier 2010
Statut
Membre
Dernière intervention
19 avril 2021
1 513
explique toi mieux, je comprend pas :)
tu veux des boutons à la place des liens ?
Messages postés
3
Date d'inscription
lundi 4 août 2014
Statut
Membre
Dernière intervention
5 août 2014

merci pour la réponse astuces72, je m'explique mieux :). Je veux en effet à partir du bouton parcourir depuis mon site accéder à un dossier contenant des fichiers et quand je clique dessus je peux avoir le contenu du fichier qui s'affiche. ça c'est le principe de base.

mais pour mieux faire, j'ai pensé à partir d'un bouton lister le contenu d'un dossier, ce qui va m'afficher, sur mon site même, tous les fichiers dans ce dossier et après je clic sur un fichier et il m'affiche son contenu.

Je sais que c'est un simple fopen, mais fopen requiert le nom du fichier, si beaucoup de fichier il m'est difficile de faire pour chacun un fopen, sachant que les fichiers s'joutent régulièrement.

Merci encore
Messages postés
6312
Date d'inscription
vendredi 15 janvier 2010
Statut
Membre
Dernière intervention
19 avril 2021
1 513
re

et ça ?
j'ai repris des bouts de code existant sur le net.
il liste les dossiers la ou se trouve la page.

<form method="post" action="" enctype="multipart/form-data">
<select name="liste">
<?php

$dirname = ".";
$traite = opendir($dirname);
while($fichier = readdir($traite))
{
if ($fichier != "." && $fichier != ".." && is_dir($fichier))
{
echo '<option value="'.$fichier.'">'.$fichier.'</option>';
}
}
closedir($traite);
?>
</select>
<input type="submit" name="selectionner" value="lister le repertoire" >
</form>

<?php
if(isset($_POST['selectionner']))
{
$dirname = $_POST['liste'];
$dir = opendir($dirname);

while($file = readdir($dir)) {
if($file != '.' && $file != '..' && !is_dir($dirname.$file))
{
echo '<a href="'.$dirname.'/'.$file.'">'.$file.'</a></br>';
}
}
closedir($dir);
}
?>