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
A voir également:
- PHP lister fichier
- Fichier bin - Guide
- Fichier epub - Guide
- Fichier rar - Guide
- Comment réduire la taille d'un fichier - Guide
- Fichier .dat - Guide
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 ^^
premier lien:
www.comscripts.com/sources/php.liste-des-fichiers-dun-dossier.51.html
Toute les réponses là....
Bravo pour la recherche ^^
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 :
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
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.
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 ?
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
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 :
merci
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 ;)
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 ;)
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...
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);
}
?>
<?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);
}
?>