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 :

CURL et la récuperation d'un fichier sur le poste client


Sujet :

Langage PHP

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 24
    Points : 15
    Points
    15
    Par défaut CURL et la récuperation d'un fichier sur le poste client
    Bonjour

    j'essaye d'ouvrir un fichier situé sur un repertoire donné du poste client à partir de l'appli php

    la fonction utilisée est
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
                        $ch = curl_init($url.'/'.$nom_file);
                        curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1); 
                        curl_setopt ($ch, CURLOPT_CONNECTTIMEOUT, $timeout); 
                        $page = curl_exec($ch);
    					  if( curl_errno($ch)) 
     					  {echo  ' Erreur Curl_exec ' .$url.'/'.$nom_file.' : ' . curl_errno($ch).' -> ' . curl_error($ch). '<br />';}
                        return($page) ;
    avec $nom_file = 'toto.csv'
    et $url = 'http://127.0.0.1:8888' ( l'adresse crée par easyphp, uilisée ici comme adresse CLIENT )

    easyphp est lancé et le fichier existe

    si je lance le programme sous l'appli en developpement local ( avec easyphp) ; ca fonctionne tres bien
    mais
    si je lance le programme sous l'appli installée sur le serveur distant , alors la connection ne se fait pas ; le message est :
    Erreur Curl_exec http://127.0.0.1:8888/toto.csv : 7 -> couldn't connect to host

    je suppose que http://127.0.0.1:8888 n'est pas reconnue par le serveur
    j'ai essayé avec l'adresse fournie par ipconfig à savoir 192.168.1.20 ( derriere une sfrbox)
    mais ca marche pas mieux (ce qui ne parait guere etonnant )

    donc quelle adresse fournir au serveur pour qu'il reconnaisse sans ambiguité le poste client ?
    ou bien est -il possible d'en créer une ?


    à moins que ca soit autre chose qu'une adresse qu'il faille fournir ?
    ou utiliser un autre moyen que CURL ?
    ( en principe le serveur sait comment joindre le poste client puisque l'appli renvoie des resultats ,
    au moins à l'ecran , donc à priori , il y a une solution ? )


    merci de votre aide

  2. #2
    Membre éprouvé Avatar de Marc3001
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Février 2008
    Messages
    829
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : Février 2008
    Messages : 829
    Points : 1 275
    Points
    1 275
    Par défaut
    Tu as un site web distant que et tu désires télécharger un fichier depuis le client sur ce serveur. Jusque là tout va bien.

    Pourquoi utiliser ton serveur comme client (curl) et ton client comme serveur (easyphp)pour effectuer ce téléchargement? Cela nécessite de connaître l'IP publique du client, d'avoir une redirection NAT sur ta box.

    Je te conseille d'utiliser sur ta page web un <input type="file"> qui permet de le faire beaucoup plus simplement.

  3. #3
    Modérateur
    Avatar de Vil'Coyote
    Homme Profil pro
    Développeur adélia & Web
    Inscrit en
    Février 2008
    Messages
    4 583
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur adélia & Web
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2008
    Messages : 4 583
    Points : 7 503
    Points
    7 503
    Par défaut
    j'essaye d'ouvrir un fichier situé sur un repertoire donné du poste client à partir de l'appli php
    on ne peut ouvrir un fichier sur un poste client via un site web enfin pas en php. le premier test marche car tu est en local mais dans un hébergement classique il t'es interdit de faire cela.

    qu'essais tu de faire au juste ? si c'est uploader un fichier pour le stocker en ligne il faut comme l'indique Marc3001 utiliser un script d'upoad sinon il va falloir expliquer un peut plus.

  4. #4
    Membre habitué
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2006
    Messages
    81
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Février 2006
    Messages : 81
    Points : 154
    Points
    154
    Par défaut
    Salut,
    tu dois installer apache sur le post client, et tu mets les fichiers dans le dossier www,
    apres il reste un probleme de dns, pour que tu puisses te connecter avec l'adresse ip du client, pour cela install aussi http://www.no-ip.com/
    ca va te donner une adresse ip, tu dois juste configurer apache pour qu'il prends en compte cette ip + port
    je peux pas t'expliquer le tout mais c'est la seule solution a moins de faire une connexion par sockets...
    mais figure toi dans ce cas, les fichiers sont accessible a n importe qui en tapant l'adresse ip, enfin que les fichiers du dossier www d'apache.

    par contre je trouve que tu compliques la vie en faisant ça

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 24
    Points : 15
    Points
    15
    Par défaut
    Merci beaucoup à tous 3 pour vos explications


    et merci pour la solution html <input files ..>
    je ne connaissais pas cette option, et elle convient tres bien à mon besoin

    (et c' est en effet beaucoup plus simple que ce que je cherchais, une solution avec IP , ou peut etre avec $_SESSION ...
    dois avoir des origines shadok ... )

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Téléchargement d'un fichier sur le poste client
    Par Général03 dans le forum Langage
    Réponses: 5
    Dernier message: 03/11/2009, 22h34
  2. visualiser un fichier sur un poste client
    Par carinia dans le forum Servlets/JSP
    Réponses: 7
    Dernier message: 15/09/2009, 15h12
  3. [FileUpload]Lecture d'un fichier sur le poste client
    Par Schuss dans le forum GWT et Vaadin
    Réponses: 2
    Dernier message: 01/07/2008, 20h44
  4. Lecture d'un fichier sur un poste client
    Par amelA dans le forum Entrée/Sortie
    Réponses: 7
    Dernier message: 09/10/2007, 12h09
  5. Réponses: 2
    Dernier message: 25/09/2007, 15h55

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