Aller au contenu

File download


francoisch

Sujets conseillés

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
Lien vers le commentaire
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
Lien vers le commentaire
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
Lien vers le commentaire
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

Lien vers le commentaire
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

Lien vers le commentaire
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 !


Lien vers le commentaire
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


Lien vers le commentaire
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...

Lien vers le commentaire
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


Lien vers le commentaire
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...


Lien vers le commentaire
Partager sur d’autres sites

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...