Parcour dossier reseau PHP

Résolu
consfox -  
 soignisec -
bonjour,
je possède un script qui est capable de lister tout les repertoires et les fichiers à partir d'un dossier defini à l'avance.
Mon pb c'est que mon dossier doit etre sur un des disques physiques de mon serveur.
je voudrais savoir si il st possible de lister sur un disque reseau et la synthaxe (dir());car en connectant un lecteur reseau (win2000) ou en mettant le chemin complet (\\serveur\partage) ca ne marche pas.
merci de votre aide.

7 réponses

boolzor
 
hello,

J'avais un probleme plus ou moins similaire que j'ai résolu :
Il s'agissait d'adresser un fichier situé sur le réseau à un object DCOM instancié depuis php
Après avoir galéré un certain temps j'ai trouvé la solution. Il faut en fait que le service apache soit associé à un compte spécifique du domain ayant les droits d'accès au serveur (me concernant j'ai créer un user exclusif pour apache)

ici ce trouve une bonne explication :
http://ww1.nicoblog.net

En espérant avoir avancé la résolution du problème.
2
Utilisateur anonyme
 
Salut,
Ton code ne fonctionnera que si le partage réseau est monté sur S: sur le serveur web, pas ton client. Est ce le cas? Apres, si ce n'est pas le cas, tu devras peut etre récupérer le protocole utilisé pour le partage Win2000, et l'utiliser pour parcourir tes partages, un peu comme en FTP. Mais vérifie d'abord que le partage est monté sur le serveur.
A ++

Fat_Cartman,
Parce que je le vaux bien...
1
Utilisateur anonyme
 
Salut,
Je serais tenter de dire "ca fonctionne". Mais comme tu ne mets aucun code, c'est impossible de confirmer.

Kalamit,
15 jours avant le soleil, la mer et les mouettes. :)
0
consfox
 
bonjour,
en effet je n'ais pas de code.
function parcoursRep($path,$i=1)
{
  $folder[$i] = dir($path);
  while($fichier = $folder[$i]->read())
    {
      // On ajoute une tabulation plus ou moins grande en fonction du niveau
      for($z=1;$z<=$i && $fichier != "." && $fichier != "..";$z++)
        echo "  ";

      // On vérifie si il s'agit d'un repertoire
      if(is_dir($path."/".$fichier) && $fichier != "." && $fichier != "..")
        {
          // Si oui, on ecrit le nom du repertoire
          echo "| <b>".$fichier."</b><br>\n";
          // On parcours le nouveau repertoire
          $sav_path = $path;
          $path .= "/".$fichier;
          parcoursRep($path,($i+1));
          $path = $sav_path;
        }
      else if($fichier != "." && $fichier != "..")
        {
          // Si non, on écrit le nom du fichier
          echo "| <a href='".$path."/".$fichier."'>".$fichier."</a><br>\n";
        }
    }
  $folder[$i]->close();
}
?>
ce code est l'oeuvre de Fabien DANIEL.

ensuite j'appele ma fonction
<?php
require 'parcour.php';
$path="c:";
parcoursRep($path,$i=1);
?>

ca sa marche super bien.
par contre si a la place de c: je met s:(lecteur reseau) ca ne marche plus de même que si je met \\serveur\partage.
Warning: dir(s:): failed to open dir: Invalid argument in c:\inetpub\wwwroot\test\parcour.php on line 4

Fatal error: Call to a member function on a non-object in c:\inetpub\wwwroot\test\parcour.php on line 5


voilà tout le code.
merci de votre aide
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
consfox
 
salut,
mon partege est bien monté sur, s:, sur mon serveur et de plus j'ai tout les droits reseaux(admin), mais ca ne marche pas.

merci de votre aide
0
soignisec
 
Bonjour,

L'explication à cette adresse :
http://www.libre-astux.info/947/acces-a-un-lecteur-reseau-depuis-apache.html
Il faut modifier le paramétrage APACHE pour un compte windows ayant les droits d'accès au réseau
0
boolax
 
erf,
j'ai exactement le même problème pour l'accès des fichiers sur un serveur distant de mon réseau
j'ai refait mon script en VBA et il fonctionne très bien, ça doit être un pb lié à php
Si quelqu'un à une solution je suis preneur
0
JIMRINX
 
Bonjour,

J'ai le même soucis, voilà un bout de temps que je recherche et peut être qu'il n'y a de solution !!!
Mais je vais présenter mon problème.
Sur un portail PHP (s'éxecutant sur un serveur A) voilà ce que je fais :
$destination = "//serveurB/Fichiers_pdf/";
$uploadOk = move_uploaded_file($nomTemporaire, $destination.$nomnew);
donc là je stocke des documents pdf sur un serveur B ($destination) ça, ça fonctionne.

Mon problème est comment à partir du portail PHP, ouvrir mes fichiers pdf avec un lien du genre :

echo "<td colspan='4'><a href='//serveurB/Fichiers_pdf/$fichier' target='_blank'><font size='3'>La Déclaration</font></a></td>";

ou un lecteur réseau ou ???

Merci d'avance des réponses soit pour une piste, soit pour une solution.

JiM
0
fred
 
bonjour,
si tu es sous windows moi j aurais mis des \ au lieu des / dans ton script pour tes chemins.
0