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

Fermé
pmnantes - 28 nov. 2021 à 12:46
jordane45 Messages postés 38273 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 6 novembre 2024 - 1 déc. 2021 à 00:37
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 38273 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 6 novembre 2024 4 695
28 nov. 2021 à 14:54
Bonjour,

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


1
Utilisateur anonyme
28 nov. 2021 à 15:08
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 38273 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 6 novembre 2024 4 695
28 nov. 2021 à 15:10
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 38273 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 6 novembre 2024
28 nov. 2021 à 20:38
Oui, c'est effectivement pour réaliser une sauvegarde automatique !
0
Merci Macintosh, c'est ce que j'utilise !
0
brucine Messages postés 17578 Date d'inscription lundi 22 février 2021 Statut Membre Dernière intervention 6 novembre 2024 2 559 > pmnantes
28 nov. 2021 à 20:52
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 38273 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 6 novembre 2024 4 695 > brucine Messages postés 17578 Date d'inscription lundi 22 février 2021 Statut Membre Dernière intervention 6 novembre 2024
28 nov. 2021 à 20:58
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 38273 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 6 novembre 2024 4 695
28 nov. 2021 à 20:41
Je te repose donc la question, quel code as-tu écrit as-tu au moins regarder le lien que je t'ai donné ?
0
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 38273 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 6 novembre 2024 4 695
29 nov. 2021 à 09:17
ç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
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 38273 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 6 novembre 2024 4 695
29 nov. 2021 à 14:20
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 38273 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 6 novembre 2024 4 695 > jordane45 Messages postés 38273 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 6 novembre 2024
29 nov. 2021 à 14:20
Sachant que mon code permet d'avoir plus de détails sur l'erreur éventuelle
0
Avec ton code j'ai le message suivant "ftp_login() expects parameter 1 to be resource, bool given"
0
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 38273 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 6 novembre 2024 4 695 > pmnantes
29 nov. 2021 à 17:01
mon code donne un message d'erreur plus clair
Peux tu le tester stp !!
0
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 38273 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 6 novembre 2024 4 695
Modifié le 30 nov. 2021 à 14:07
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
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 38273 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 6 novembre 2024 4 695
1 déc. 2021 à 00:37
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
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