Page 1 sur 2
open dir
Posté : 17 sept. 2006, 18:32
par Invité
Bonjour,
J'ai créé 2 dossiers images1 et images2, qui contiennent des images.
J'utilise php pour lire et lister les fichiers d'un dossier:
$dir = opendir('images1/');
while ($read_files = readdir($dir))
{
if ($read_files) {
echo $read_files . "<br>";
}
}
closedir($dir);
Mon problème: le script marche avec le dossier images1, mais pour le dossier images2, je reçois une erreur
Warning: opendir(c:/program files/...): failed to open dir: Invalid argument in c:\...
Savez vous à quoi ça peut être dû?
Posté : 17 sept. 2006, 20:46
par @rthur
Bonjour,
Essaye de doubler les antislashes pour un serveur sous windows : "c:\\program files\\..."
Posté : 18 sept. 2006, 01:00
par Invité
j'ai essayé, ça ne change rien. Ma fonction marche avec le dossier chemin
$dir = opendir('images1/');
Par contre $dir = opendir('images2/'); ne marche pas.
Y'aurait-il un lien avec des permissions sur dossiers? comment puis-je tester ça ? (windows xp + easyphp 1.8)
Posté : 18 sept. 2006, 01:04
par Invité
un truc étrange:
mon dossier images1 est bien lu et affiché. Par contre si je fais une copie de images1 que je renomme images_copie, je n'arrive pas à le lire! pourtant il a le même contenu. ya un truc qui m'échappe...
Posté : 18 sept. 2006, 10:26
par Invité
personne n'a jamais eu ce genre de pb avec opendir?
Posté : 18 sept. 2006, 12:02
par Invité
pitié, une piste svp...
Posté : 18 sept. 2006, 12:05
par zeus
essaye de vérifier si le répertoire existe avant de faire un opendir()
if (!is_dir('image2'))
{
echo "eh eh, il existe pas celui là ;-)";
}
Sinon, juste pour voir, essaye sans mettre le / à la fin

Posté : 18 sept. 2006, 13:42
par Invité
a priori le répertoire n'existe pas quand j'utiliser is_dir...comment est possible puisque je l'ai sous les yeux? ça me rend dingue ce truc.
Posté : 18 sept. 2006, 13:52
par Ryle
Comment crées-tu le répertoire ? via windows ou en php ?
Ton dossier est bien dans le répertoire ou s'exécute le script php ?
Est ce que tu fais bien des closedir() une fois que tu n'as plus besoin de la ressource ?
Tu peux essayer de redémarre easyphp (voire windows), ça pourrait peut être libérer des accès ou des verrous sur le dossier...

Posté : 18 sept. 2006, 13:57
par zeus
essaye également d'afficher le répertoire dans lequel tu te trouves au cas où tu ais mélanger 2 espaces physique
echo $_SERVER['PHP_SELF'];
Posté : 18 sept. 2006, 14:49
par Invité
Réponse aux questions:
1- Le répertoire est créé via windows
2- Le chemin est bon, puisque la lecture du dossier images1 fonctionne
3 -Je fais bien
Complément d'info:
J'ai 4 autres dossiers qui contiennent divers fichiers sur mon serveur local.
a lecture de dossier ne fonctionne que pour images1/
Les autes dossiers (css/, divers/...) ne répondent pas non plus.
Si je fais un copier-coller du dossier images1/ qui fonctionne, sa copie de fonctionne pas!
Posté : 18 sept. 2006, 14:54
par Invité
pareil, tous les nouveaux dossiers que je crée ne marchent pas.
Poutant surle même serveur, j'ai le même script de lecture qui tourne pour un autre site sans problème.
Posté : 18 sept. 2006, 14:59
par Invité
il n'y a aucune fonction qui permette de contourner opendir ?
Posté : 18 sept. 2006, 15:06
par Invité
si je renomme mon seul dossier qui fonctionne, lui aussi ne répond plus...snif.
Posté : 18 sept. 2006, 15:25
par zeus
Est-ce que tu as une gestion des droits sur ces dossier ?
un .htaccess par exemple
