Comment copier un fichier de mon serveur ftp sur mon disque dur
pmnantes
-
jordane45 Messages postés 30427 Date d'inscription Statut Modérateur Dernière intervention -
jordane45 Messages postés 30427 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 !
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 !
10 réponses
-
Bonjour,
As tu bien utilisé les instructions php pour le ftp ?
https://www.php.net/manual/en/function.ftp-get.php
-
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+ -
Je te repose donc la question, quel code as-tu écrit as-tu au moins regarder le lien que je t'ai donné ?
-
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 ?-
ç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"; }
-
-
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 ! -
Avec ton code j'ai le message suivant "ftp_login() expects parameter 1 to be resource, bool given"
-
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 ! -
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"; } -
Avec ce nouveau bout de code j'ai le message d'erreur suivant :
NULL Echec de la connexion FTP sur ftp.xxxxxxxxxxxxxxxx.nfrance.net -
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.