IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

[FTP] opendir sur un répertoire distant


Sujet :

Langage PHP

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    96
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 96
    Points : 67
    Points
    67
    Par défaut [FTP] opendir sur un répertoire distant
    Bonjour,
    J'ai un site perso et je voudrai pouvoir télécharger tous les fichiers qu'il contient. Je ne peux y accéder par FTP, donc plutot que d'installer un aspirateur de site, je me suis dis que je pouvais faire un petit script php.
    Le script est exécuté en local et quand je l'exécute j'ai droit à
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Warning: opendir(http://monsiteperso.com): failed to open dir: not implemented in c:\program files\easyphp1-8\www\divers\aspiro.php on line 9
     
    Warning: closedir(): supplied argument is not a valid Directory resource in c:\program files\easyphp1-8\www\divers\aspiro.php on line 30
    j'ai testé mon script sur un répertoire local et il mache très bien, je l'ai aussi testé depuis un autre site perso vers ce meme site ça fonctionne.
    Donc si vous voyez un problème.... Cela m'éviterai d'avoir à installer un aspirateur.



    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    <?php
     
    echo(parcoursArbo("http://monsiteperso.com","./DL"));
     
    function parcoursArbo($urlRep,$urlLocal){
    	$codeHTML="";
        //encodage de l'url
        $url=str_replace("%2F","/",rawurlencode($urlRep));
        if($dossier = opendir($urlRep)){
            //tt ke toutes les entrées du rep courrant n'ont pas ete testees
            while (false !== ($Fichier = readdir($dossier)))
            {
                //si c'est un repertoire
                if($Fichier!="." && $Fichier!=".." && is_dir($urlRep."/".$Fichier)){
    	            //crer le ss rep local
    	            mkdir($urlLocal."/".$Fichier);
    	            $codeHTML.="<li><b><u>repertoire ".$urlLocal."/".$Fichier." cree</u></b>\n";
    	            //appel recursif
                	$codeHTML.=parcoursArbo($urlRep."/".$Fichier,$urlLocal."/".$Fichier);
                }
                else{
    	            if($Fichier!="." && $Fichier!=".."){
    		            copy($urlRep."/".$Fichier,$urlLocal."/".$Fichier);
    		            $codeHTML.="<ul> ".$urlRep."/".$Fichier." <b>copié dans</b> ".$urlLocal."/".$Fichier."</ul>\n";
    	            }
                }
           }
           $codeHTML.="</li>\n";
        }
        closedir($dossier);
        return $codeHTML;
    }
    ?>

    merci

  2. #2
    Membre expérimenté Avatar de julien.63
    Profil pro
    balayeur
    Inscrit en
    Décembre 2005
    Messages
    1 348
    Détails du profil
    Informations personnelles :
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : balayeur

    Informations forums :
    Inscription : Décembre 2005
    Messages : 1 348
    Points : 1 311
    Points
    1 311
    Par défaut
    j'ai pas la réponse ultime à ton problème mais est ce que tu es sûr de :Qu'est ce que ça donne avec : Ce qui justifierai mieux la présence de la ligne 8.

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    96
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 96
    Points : 67
    Points
    67
    Par défaut
    En fait la ligne dont tu parles c'est juste une ligne inutile que j'ai oublié de virer
    Donc le problème reste entier

  4. #4
    Membre du Club
    Inscrit en
    Février 2006
    Messages
    102
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 102
    Points : 68
    Points
    68
    Par défaut
    as-tu la permission d'ouvrir une url distante ? Il te dit quoi le paramètre "allow_url_fopen" ?

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    96
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 96
    Points : 67
    Points
    67
    Par défaut
    ba allow_url_fopen est bien à ON, et ma version Php est 4.3.10 donc je devrais avoir le droit d'ouvrir des fichiers distants

  6. #6
    Membre éclairé
    Avatar de kankrelune
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    763
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 763
    Points : 858
    Points
    858
    Par défaut
    tu as essayé avec http://monsiteperso.com/... .. ?

    @ tchaOo°

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    96
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 96
    Points : 67
    Points
    67
    Par défaut
    Non .
    J'ai testé avec mon site perso chez free, et comme ça passait pas j'ai testé avec d'autres adresses et j'ai eu pareil

  8. #8
    Membre éclairé
    Avatar de kankrelune
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    763
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 763
    Points : 858
    Points
    858
    Par défaut
    Oui mais t'as essayé avec un slashe à la fin... .. ?

    Sinon t'as essayé de faire un fopen sur un fichier distant... .. ?

    @ tchaOo°

  9. #9
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    96
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 96
    Points : 67
    Points
    67
    Par défaut
    Oui excuse moi pour le slash de fin, ça ne marche pas.
    Par contre je peux ouvrir et afficher un fichier distant sans problèmes

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    $FILE=fopen("http://monSite/monFic.txt","r");
    while(!feof($FILE)){
    	echo(fgets($FILE)."<br>");
    }
    mais ça ne me sert pas a grand chose si je ne peux lister le repertoire qui le contient.

  10. #10
    Membre éclairé
    Avatar de kankrelune
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    763
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 763
    Points : 858
    Points
    858
    Par défaut
    Uhm c'est bizar... .. .

    Question très bête... mais sait on jamais... ton DNS n'est pas un DNS par frame... la redirection est transparente... .. .

    si tu fais... http://ton_site.ext/mo_dossier/mon_fichier.ext tu tombe quelque part (si l'adresse est bonne biensur)

    en même temps si le fopen fonctionne ça doit pas être ça... .. .

    @ tchaOo°

  11. #11
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    96
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 96
    Points : 67
    Points
    67
    Par défaut
    Oui oui, c'est mon site perso donc l'adresse est bonne et tombe quelque part
    Mais je me demande si c'est pas tout simplement que pour des raisons de sécurité on ne peut faire d'opendir sur un repertoire distant.

  12. #12
    Membre éclairé
    Avatar de kankrelune
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    763
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 763
    Points : 858
    Points
    858
    Par défaut
    Bha normalement rien ne s'y oppose... .. .

    opendir()

    @ tchaOo°

  13. #13
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    15
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 15
    Points : 16
    Points
    16
    Par défaut
    Bonjour
    J'ai un problème similaire. Je n'ai pas trouvé la synthaxe qui permet de récupérer la liste des fichiers d'un dossier DISTANT. A la base j'avais essayé un truc du genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    if ($handle = opendir("http://monsite.provider.fr/dossier1/dossier2/"))
    Mais ça n'a pas l'air de fonctionner. Quand je fais un echo du $handle, il ne me retourne rien :/.

    Sur tout les sites où l'on peut apprendre à se servir de cette fonction, ils ne donnent jamais d'exemple avec un site distant, la cible se trouve tout le temps sur le même ftp.

    Quelqu'un à t'il déjà réalisé une page qui affiche les fichiers d'un autre site ?

    Merci

  14. #14
    Membre du Club
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    96
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 96
    Points : 67
    Points
    67
    Par défaut
    salut,
    En fait cette fonctionnalité est bloquée pour des raisons de sécurité évidente dans la plus part des cas. Si comme dans mon cas le site distant possède une page html listant tous les fichiers contenus dans le repertoire, tu peux recupérer les adresses des fichiers dirrectement dans le code html grâce a des reg exp. C'est un peu porc mais ça marche.

  15. #15
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    15
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 15
    Points : 16
    Points
    16
    Par défaut
    Pas con

    J'y avais même pas pensé ...

    Merci bien.

Discussions similaires

  1. [FTP] Ecrire sur un fichier distant via ftp
    Par jules_diedhiou dans le forum Langage
    Réponses: 2
    Dernier message: 12/05/2009, 15h23
  2. Travail sur un répertoire distant
    Par Gliss' dans le forum Eclipse Java
    Réponses: 5
    Dernier message: 15/05/2007, 01h31
  3. [C#]Accéder à un répertoire partagé sur une machine distante
    Par spaceclic dans le forum Windows Forms
    Réponses: 15
    Dernier message: 14/05/2007, 16h43
  4. Réponses: 34
    Dernier message: 23/03/2007, 15h12
  5. pb opendir sur repertoire sur serveur distant
    Par nanou40 dans le forum Langage
    Réponses: 22
    Dernier message: 10/10/2005, 16h45

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo