Comment copier un fichier de mon serveur ftp sur mon disque dur

pmnantes -  
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   -
Bonjour,

En localhost le code :

copy('tmp/save_param.csv', 'C:\chemin_dossier_destination\save_param.csv');

... copie bien sur mon disque dur le fichier avec le contenu initial, mais si je test ce code depuis mon site, le fichier contient le code html de ma page web à la place du contenu initial.

Comment faire une véritable copie du fichier depuis le serveur distant ?

Merci d'avance pour votre aide !
A voir également:

10 réponses

jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 
Bonjour,

As tu bien utilisé les instructions php pour le ftp ?
https://www.php.net/manual/en/function.ftp-get.php


1
Utilisateur anonyme
 
Bonjour
Vous pouvez aussi essayez un client FTP (programme) gratuit et simple comme Filezilla, il possède une interface graphique proche de l'explorateur, est 100% gratuit et très diffusé.
A+
0
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 
Vu qu'il poste dans le forum programmation, il y a de fortes chances qu'il veuille automatiser ça..

Par conséquent, utiliser un logiciel ne dois pas répondre à son besoin.
Mais bon, attendons son retour...
0
pmnantes > jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention  
 
Oui, c'est effectivement pour réaliser une sauvegarde automatique !
0
pmnantes
 
Merci Macintosh, c'est ce que j'utilise !
0
brucine Messages postés 21729 Date d'inscription   Statut Membre Dernière intervention   3 433 > pmnantes
 
Bonsoir,

Les possibilités sont multiples, rien ne s'oppose à ce que cela soit fait via un script batch tout bête.
0
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752 > brucine Messages postés 21729 Date d'inscription   Statut Membre Dernière intervention  
 
c'est sûr ... mais vu qu'il a posé sa question dans le forum PHP .. on peut naturellement s'attendre à ce que la réponse soit du php ...
0
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 
Je te repose donc la question, quel code as-tu écrit as-tu au moins regarder le lien que je t'ai donné ?
0
pmnantes
 
Merci pour ton lien jordane45 !

J'ai testé ftp_connect() et ftp_ssl_connect(), mais impossible t'établir la connexion.

Pour $ftp_server j'utilise l'équivalent de l'Hôte dans FileZilla, est-ce bien cela ?
0
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 
ça serait bien qu'à un moment tu nous montres le code que tu essais d'écrire..

En attendant, essaye ça
$ftp_server = "le_hostname_de_tonserveur_ou_son_ip";
$ftp_user_name = "userftp";
$ftp_user_pass = "password_ftp";

$conn_id = ftp_connect($ftp_server);

// login with username and password
$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);

// Vérification de la connexion
if ((!$conn_id) || (!$login_result)) {
  var_dump(error_get_last());
  die("Echec de la connexion FTP !");
}else{
  echo "connexion OK";
}
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
pmnantes
 
Merci jordane45, voici mon code :


$ftp_server = 'ftp.xxxxxxx.nfrance.net';

$ftp_user_name = 'identifiant_ftp';
$ftp_user_pass = 'mot_de_passe_ftp';

$server_file = 'tmp/save_param.csv';
$local_file = 'C:\chemin_dossier_destination\save_param.csv';

$ftp = ftp_connect($ftp_server) or die("Impossible de se connecter à : $ftp_server !");

$login_result = ftp_login($ftp, $ftp_user_name, $ftp_user_pass) or die("Impossible de s'identifier !");

if (ftp_get($ftp, $local_file, $server_file, FTP_BINARY))
{
echo "Le fichier $local_file a été écrit avec succès";
}
else
{
echo "Il y a un problème";
}

ftp_close($ftp);


... c'est un peu similaire au tiens.

J'ai un doute pour $ftp_server.

Lorsque tu notes "le_hostname_de_tonserveur_ou_son_ip", il s'agit bien de ce que l'on renseigne en Hôte dans FileZilla, non ?

J'ai testé avec le préfixe ftp. et sans, même problème !
0
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 
Oui c'est la même chose que dans FileZilla
Par contre.. tu as un message d'erreur ?? il faudrait nous le donner
0
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752 > jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention  
 
Sachant que mon code permet d'avoir plus de détails sur l'erreur éventuelle
0
pmnantes
 
Avec ton code j'ai le message suivant "ftp_login() expects parameter 1 to be resource, bool given"
0
pmnantes
 
Si je teste avec le bout de code

$conn_id = ftp_connect($ftp_server) or die("Impossible de se connecter à : $ftp_server !")


... j'ai le message "Impossible de se connecter à : ftp.xxxxxxxxx.nfrance.net !"
0
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752 > pmnantes
 
mon code donne un message d'erreur plus clair
Peux tu le tester stp !!
0
pmnantes
 
Voici l'ensemble des infos retournées avec ton code :

array(4) { ["type"]=> int(2) ["message"]=> string(58) "ftp_login() expects parameter 1 to be resource, bool given" ["file"]=> string(67) "/home/users/xxxxxxxxxxxxxxxxx/debug.php" ["line"]=> int(24) } Echec de la connexion FTP !
0
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 
C'est donc que tu as un problème sur la fonction ftp_connect ... tu es sûr de mettre le bon hostname (essaye avec son IP à la place)

Essaye comme ceci
<?php
$ftp_server = "le_hostname_de_tonserveur_ou_son_ip";
$ftp_user_name = "userftp";
$ftp_user_pass = "password_ftp";

$conn_id = ftp_connect($ftp_server);
if (!$conn_id) {
  var_dump(error_get_last());
  die("Echec de la connexion FTP sur " . $ftp_server);
}
// login with username and password
$login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);

// Vérification de la connexion
if (!$login_result) {
  var_dump(error_get_last());
  die("Echec de la connexion FTP !");
}else{
  echo "connexion OK";
}
0
pmnantes
 
Avec ce nouveau bout de code j'ai le message d'erreur suivant :

NULL Echec de la connexion FTP sur ftp.xxxxxxxxxxxxxxxx.nfrance.net
0
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 
Pour l'accès au FTP .. le host .. c'est juste le nom de domaine
Il ne faut pas mettre ftp. devant..

Pour l'ip.. il suffit de faire un PING
0
pmnantes
 
Pour hostname :

$ftp_server = "le_hostname_de_tonserveur_ou_son_ip";


... j'utilise exactement celui que je renseigne en Hôte dans FileZilla, et testé avec et sans le préfixe ftp., et pour l' IP, je ne vois pas où la trouver ni sous quelle forme.
0