PHP lister fichier
Résolu
darkchristophetd
Messages postés
1100
Date d'inscription
Statut
Contributeur
Dernière intervention
-
darkchristophetd Messages postés 1100 Date d'inscription Statut Contributeur Dernière intervention -
darkchristophetd Messages postés 1100 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour,
Existe-t-il une fonction php qui permette de lister tout les fichiers présents dans un dossier ?
merci
Existe-t-il une fonction php qui permette de lister tout les fichiers présents dans un dossier ?
merci
Configuration: Windows XP Firefox 2.0.0.18
12 réponses
-
Google => recherche de PHP lister fichier
premier lien:
www.comscripts.com/sources/php.liste-des-fichiers-dun-dossier.51.html
Toute les réponses là....
Bravo pour la recherche ^^
-
merci
est-ce posssible de faire en sorte que quand on clique sur un fichier, il s'ouvre ? -
Suffis de rajouter un lien ^^
<?php $folder = "./"; $dossier = opendir($folder); while ($Fichier = readdir($dossier)) { if ($Fichier != "." && $Fichier != "..") { $nomFichier = $folder."".$Fichier; echo '<a href="'.$nomFichier.'">'.$nomFichier.'</a><BR>'; } } closedir($dossier); ?>
-
d'accord
mais quand je met ce code :<?php $folder = "../uploads"; $dossier = opendir($folder); while ($Fichier = readdir($dossier)) { if ($Fichier != "." && $Fichier != "..") { $nomFichier = $folder."".$Fichier; echo '<a href="'.$nomFichier.'">'.$nomFichier.'</a><BR>'; } } closedir($dossier); ?>
Il me met ça :
Warning: opendir(../uploads/) [function.opendir]: failed to open dir: Permission denied in /var/www/virtual/web-innovation.eg2.fr/htdocs/admin/uploads.php on line 31
Warning: readdir(): supplied argument is not a valid Directory resource in /var/www/virtual/web-innovation.eg2.fr/htdocs/admin/uploads.php on line 32
Warning: closedir(): supplied argument is not a valid Directory resource in /var/www/virtual/web-innovation.eg2.fr/htdocs/admin/uploads.php on line 39
-
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
dans quel dossier se trouve le dossier upload? dans htdocs ?
Apparement c'est un problème de droits.
Serveur locale ? si oui tu dois modifier les droits par la commande chmod -XXX /ton/chemin/vers/upload
Sinon tu es chez un hébergeur ?
Si oui tu dois utiliser ton logiciel FTP pour modifier les droits (chmod) du dossier upload. -
il se trouve dans le dossier qui contient la page et s'appelle en effet "uploads"
Je suis chez un hébergeur (espace gratuit 2)
J'ai mis le chmod à 733.
Combien il faut mettre ? -
alors déjà modifie la ligne $folder = "../uploads";
essaye $folder = "./uploads";
ou $folder = "/uploads";
car ../ signifie que tu remonte d'un dossier; il va chercher ton dossier a cet endrois en ce moment:
[...]/htdocs/uploads
au lieu de [...]/htdocs/admin/uploads
Sinon essaye de mettre un chmod 777 (c'est le max) pour verifier si ça fonctionne, mais attention, tout les utilisateur on tout les droits, a toi de voir quel chmod te conviens le mieux (pour ça va voir ici: tu trouvera des explication sur l'utilisation du chmod:
https://fr.wikipedia.org/wiki/Chmod
http://www.siteduzero.com/tutoriel-3-36115-les-chmod.html
-
ah c bon
j'ai mis le chmod a 777
et ça marche avec ce code :<?php $folder = "../uploads/"; $dossier = opendir($folder); while ($Fichier = readdir($dossier)) { if ($Fichier != "." && $Fichier != "..") { $nomFichier = $folder."".$Fichier; echo '<a href="../uploads/'.$nomFichier.'">'.$nomFichier.'</a><BR>'; } } closedir($dossier); ?>
merci-
Si t'as pas envie de te prendre la tête avec les chmod, mais si tu souhaite quand même garder un minimum de sécurité, change tes chmod petit a petit:
777 => 776 => 775 => 774
77X =>76X => 75X => 74X
le premier chiffre donne les droits au créateur du dossier (normalement toi)
le deuxieme au groupe du créateur
le troisieme au reste <= c'est surtout celui la qu'il est important de réduire, le plus petit (temps que ça fonctionne) serra le mieux ;)
Bonne chance ;)
-
-
merci
une dernière chose : comment faire pour récupérer la taille de ces fichiers ? -
Tu dois pas chercher beaucoup quand même hein, c'est le genre de question ou l'on trouve plus rapidement la reponse que le temps de la poser en plus...
Google => taille fichier php
Et Hop on trouvela commande php qui permet ça: filesize();
on trouve aussi des script qui retaille automatiquement la taille en Ko ou Go
Dans ton cas modifie la ligne:
echo '<a href="'.$nomFichier.'">'.$nomFichier.'</a><BR>';
par:
echo '<a href="'.$nomFichier.'">'.$nomFichier.' - '.filesize($nomFichier).'</a><BR>';
La taille serra 0 pour les dossiers et en octets pour les fichiers.
Si tu veux, tu peux definir des condition d'affichage: par exemple avec if(!is_dir()) pour verifier qu'il ne s'agit pas d'un dossier, dans quel cas on n'affichera pas la taille
ou tu peux tester la taille aussi: si ça depasse 1024 tu divise par 1024 et tu affiche en Ko au lieu d'en octets...
-
Bonjour la réponse à ta question figure dans le manuel de php. Mais pour t'éclairer davantage, il faut utiliser les fonctions "opendir" et readdir:
<?php
// Notez que !== n'existait pas avant 4.0.0-RC2
if ($handle = opendir('/chemin/vers/fichiers')) {
echo "Directory handle: $handle\n";
echo "Files:\n";
/* Ceci est la façon correcte de traverser un dossier. */
while (false !== ($file = readdir($handle))) {
echo "$file\n";
}
/* Ceci est la MAUVAISE façon de traverser un dossier. */
while ($file = readdir($handle)) {
echo "$file\n";
}
closedir($handle);
}
?> -
merci a tous