francoisch Posté 29 Décembre 2014 Posté 29 Décembre 2014 (modifié) Bonjour Je code : $source_file = “/home/aaa/www/tete/aaabase3.sql”; $handle = fopen($destination_file, 'w'); $conn_id = ftp_connect($ftp_server); $login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass); $passif = ftp_pasv($conn_id, true); $download = ftp_fget($conn_id, $handle, $source_file, FTP_BINARY, 0); pour télécharger en mode passif un fichier depuis mon site sur mon PC. J’ai cette erreur : Warning: ftp_fget() [function.ftp-fget]: Can't open /home/aaa/www/tete/aaabase3.sql: No such file or directory in /home/aaa/… Je n’arrive pas à exprimer le nom du fichier source en dépit de mes essais successifs. Merci par avance de votre aide. Francois Modifié 29 Décembre 2014 par francoisch
Dan Posté 29 Décembre 2014 Posté 29 Décembre 2014 Et ton $destination_file, il vaut quoi ? Tu es certain qu'il n'ait pas la même valeur que $source_file ?
francoisch Posté 29 Décembre 2014 Auteur Posté 29 Décembre 2014 Oui, ce sont exactement les mêmes noms. Un problème? Francois
eric73 Posté 29 Décembre 2014 Posté 29 Décembre 2014 pour le source, tu mets juste aaabase3.sql et le fichier aaabase3.sql dans le même repertoire que ton script php.
francoisch Posté 29 Décembre 2014 Auteur Posté 29 Décembre 2014 (modifié) Mon script et le fichier local sont dans le même dossier /tete. C'est une difficulté? Francois +++++++++++++++ J'ai mis le script et le fichier local dans la racine: même erreur. Francois Modifié 29 Décembre 2014 par francoisch
francoisch Posté 29 Décembre 2014 Auteur Posté 29 Décembre 2014 (modifié) J'ai fait des corrections, l'exécution semble se dérouler normalement mais:- le fichier destination n'est pas créé- le fichier source est mis à 0 Francois +++++++++++++ Je viens de nommer le fichier destination d’un nom différent de celui du fichier source. Le résultat : Le fichier destination n’est tjs pas créé Le fichier source est renommé du nom du fichier destination (surprise) Où est l’erreur ? Francois Modifié 30 Décembre 2014 par francoisch
francoisch Posté 30 Décembre 2014 Auteur Posté 30 Décembre 2014 Je viens de nommer le fichier destination, qui est par hypothèse sur mon PC, d’un nom simple D:/aaabase3.sql. J’ai cette erreur : Warning: fopen(D:/aaabase3.sql) [function.fopen]: failed to open stream: No such file or directory in /home … Mon problème se situe manifestement dans le nom du fichier de destination. A votre avis ? Francois
francoisch Posté 31 Décembre 2014 Auteur Posté 31 Décembre 2014 Bonjour Je code : $source_file = “/home/aaa/www/tete/aaabase3.sql”; $destination_file = “D:/aaabase3.sql”; $download = ftp_get($conn_id, $destination_file, $source_file, FTP_BINARY, 0); pour télécharger en mode passif un fichier depuis mon site sur mon PC. J’ai cette erreur : Warning: fopen(D:/aaabase3.sql) [function.fopen]: failed to open stream: No such file or directory in /home … Merci par avance de votre aide. Francois
francoisch Posté 31 Décembre 2014 Auteur Posté 31 Décembre 2014 bonjour Dan Comme débutant sur ce sujet, j'ai repris des exemples trouvés sur la toile. Je n'y ai rien trouvé qui caractérise mon PC si c'est bien le sujet que tu soulèves. Tu peux détailler un peu? Merci à toi. Francois
Dan Posté 31 Décembre 2014 Posté 31 Décembre 2014 Il faut bien que ton serveur connaisse l'adresse IP (au moins) ou le nom (s'il est connu sur le net) de ton PC... Sinon, comment veux-tu qu'il sache vers quelle bécane envoyer les fichiers ? Mais je pense qu'il serait plus simple de lancer ftp sur ton PC et d'aller chercher les fichiers sur ton serveur. Tu n'auras pas de souci dus au firewall sur ta FreeBox !
francoisch Posté 1 Janvier 2015 Auteur Posté 1 Janvier 2015 bonjour Dan Oui, tout à fait d'accord, il faut que le serveur FTP sache adresser mon PC, mais comment? Ma box a une adresse IP fixe et je pourrais faire un reroutage de port. Ca donnerait au fichier de destination sur mon PC un nom du genre 123.456.789.345:345/D:/monfichier.aze A ton avis, ça pourrait marcher? Je vais ça pour automatiser mes téléchargements avec une tâche planifiée; naturellement, je télécharge mes fichiers manuellement pour le moment. Bonne année à toi et merci de ton aide. Francois
Dan Posté 1 Janvier 2015 Posté 1 Janvier 2015 Non, il faut simplement, avant d'ouvrir la connexion ftp, mettre l'IP de ton PC (ou de ta box) come HOST. Par exemple comme ceci : <?php$ftp_server = "ftp.example.com";$ftp_user = "foo";$ftp_pass = "bar";// Mise en place d'une connexion basique$conn_id = ftp_connect($ftp_server) or die("Couldn't connect to $ftp_server"); // Tentative d'identificationif (@ftp_login($conn_id, $ftp_user, $ftp_pass)) { echo "Connecté en tant que $ftp_user@$ftp_server\n";} else { echo "Connexion impossible en tant que $ftp_user\n";}// Fermeture de la connexionftp_close($conn_id);?> Avec l'IP de ta BOX à la place de ftp.example.com Encore faut-il que ton PC réponde à une requête ftp...
francoisch Posté 1 Janvier 2015 Auteur Posté 1 Janvier 2015 bonjour Dan Mon fichier Hosts est dans son état original, indiquant: # # 102.54.94.97 rhino.acme.com # source server # 38.25.63.10 x.acme.com # x client host # localhost name resolution is handled within DNS itself. # 127.0.0.1 localhost # ::1 localhost Faut-il ajouter une ligne comme ça: 123.154.198.13 ???? # ma box sans que je sache bien quoi mettre pour remplacer ???? Par ailleurs, que faudrait-il pour que mon PC réponde à une requête Ftp? Qu'il soit sous tension avec un client Ftp actif? Aussi, comment la requête Ftp qui ne connaîtra que la box, arrivera t elle à mon PC? J'ajoute un port, avec une redirection de port, à l'adresse IP de la box? Merci de ton aide précieuse. Francois
Dan Posté 2 Janvier 2015 Posté 2 Janvier 2015 Pas besoin de modifier ton fichier /etc/hosts pour cela. Tu peux simplement mettre l'IP de ta box dans l'appel à ftp_connect(). Mais je t'ai dit plus haut que le plus simple était de lancer le transfert dans l'autre sens. Donc que ton PC aille chercher les fichiers. Parce que je ne peux pas configurer ta box ou ton PC à distance si tu ne sais pas le faire...
francoisch Posté 2 Janvier 2015 Auteur Posté 2 Janvier 2015 Effectivement, le ftp_get semble compliqué à mettre en oeuvre. As tu une suggestion de mise en oeuvre de lancement dans l'autre sens que je puisse automatiser? Merci à toi. Francois
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant