Précédent   Forum des professionnels en informatique > PHP > Langage > Fonctions
Fonctions Forum d'entraide sur les fonctions PHP. Avant de poster -> FAQ fonctions et Sources diverses
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 18/10/2011, 15h48   #1
Invité de passage
 
Inscription : juillet 2008
Messages : 20
Détails du profil
Informations forums :
Inscription : juillet 2008
Messages : 20
Points : 3
Points : 3
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 :
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
zephira est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/10/2011, 15h12   #2
Membre chevronné
 
Avatar de Marc3001
 
Homme
Ingénieur développement logiciels
Inscription : février 2008
Messages : 430
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 28
Localisation : France, Ille et Vilaine (Bretagne)

Informations professionnelles :
Activité : Ingénieur développement logiciels

Informations forums :
Inscription : février 2008
Messages : 430
Points : 682
Points : 682
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.
__________________
Le logiciel, c'est comme le sexe, c'est meilleur quand c'est libre.

Linus Torvalds
Marc3001 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/10/2011, 16h56   #3
Modérateur
 
Avatar de Vil'Coyote
 
Développeur Web
Inscription : février 2008
Messages : 3 307
Détails du profil
Informations personnelles :
Âge : 31
Localisation : France, Marne (Champagne Ardenne)

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : février 2008
Messages : 3 307
Points : 4 488
Points : 4 488
Citation:
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.
Vil'Coyote est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/10/2011, 19h58   #4
Membre régulier
 
Homme Abdelilah amezghal
Développeur informatique
Inscription : février 2006
Messages : 56
Détails du profil
Informations personnelles :
Nom : Homme Abdelilah amezghal

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

Informations forums :
Inscription : février 2006
Messages : 56
Points : 95
Points : 95
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
amezghal est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/10/2011, 18h26   #5
Invité de passage
 
Inscription : juillet 2008
Messages : 20
Détails du profil
Informations forums :
Inscription : juillet 2008
Messages : 20
Points : 3
Points : 3
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 ... )
zephira est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 05h29.


 
 
 
 
Partenaires

Hébergement Web