Aller au contenu
francoisch

File download

Noter ce sujet :

Recommended Posts

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é par francoisch

Partager ce message


Lien à poster
Partager sur d’autres sites

Et ton $destination_file, il vaut quoi ?


Tu es certain qu'il n'ait pas la même valeur que $source_file ?

Partager ce message


Lien à poster
Partager sur d’autres sites

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é par francoisch

Partager ce message


Lien à poster
Partager sur d’autres sites

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é par francoisch

Partager ce message


Lien à poster
Partager sur d’autres sites

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

Partager ce message


Lien à poster
Partager sur d’autres sites

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

Partager ce message


Lien à poster
Partager sur d’autres sites

Et le HOST qui correspond à ton PC, il est où ?

Partager ce message


Lien à poster
Partager sur d’autres sites

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


Partager ce message


Lien à poster
Partager sur d’autres sites

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 !


Partager ce message


Lien à poster
Partager sur d’autres sites

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


Partager ce message


Lien à poster
Partager sur d’autres sites

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'identification
if (@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 connexion
ftp_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...

Partager ce message


Lien à poster
Partager sur d’autres sites

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


Partager ce message


Lien à poster
Partager sur d’autres sites

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...


Partager ce message


Lien à poster
Partager sur d’autres sites

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


Partager ce message


Lien à poster
Partager sur d’autres sites

Créer un compte ou se connecter pour commenter

Vous devez être membre afin de pouvoir déposer un commentaire

Créer un compte

Créez un compte sur notre communauté. C’est facile !

Créer un nouveau compte

Se connecter

Vous avez déjà un compte ? Connectez-vous ici.

Connectez-vous maintenant

×