ftp to ftp par page php - PHP - Programmation
Marsh Posté le 16-08-2005 à 15:42:54
Non je veux le faire en php pour ne pas avoir à etre sur une machine qui a un logiciel ftp pour faire le transfert justement
Marsh Posté le 16-08-2005 à 17:45:06
À quel moment le script bloque? Le code a l'air bon... 
Peut-être que le FTP de "mise à jour" est derrière un firewall/routeur, ce qui nécessiterai l'usage du mode ftp passif à l'aide de ftp_pasv 
 
Après ton ftp_login, rajoutes ftp_pasv($conn_id, true);
Marsh Posté le 16-08-2005 à 17:51:35
quelqu'un peut le tester pour me dire si il fonctionne chez lui ?
Marsh Posté le 16-08-2005 à 18:03:57
T'as essayé? Ça ne marche toujours pas? 
Peut-être que free, tout comme la fonction mail(), a bridé les fonctions ftp...
Marsh Posté le 16-08-2005 à 18:11:29
Bingo. 
 
http://faq.free.fr/?q=1137 
"A noter: Les modules ftp, imap ne sont pas installés." 
Marsh Posté le 17-08-2005 à 09:11:43
Merci dotfx pour l'info 
connaitrai tu un moyen de faire ce que je veux sans les commande ftp. A mon avis c plus possible. 
T'en pense quoi?
Marsh Posté le 17-08-2005 à 09:35:36
tu peux toujours réalisé une connexion ftp à la main, je veux dire ouvrir une connexion à l'aide de sockets - free ne désactive pas fsockopen ... si t'es motivé : 
l'envoi des données se construit ainsi : 
(socket sur le port 21 du serveur, je note > les trucs que t'envoies) 
200 ... 
> USER nom_user 
331 ... 
> PASS pass 
230 ... 
> CWD lerepertoireoutuveuxaller 
250 ... 
> PASV 
227 Entering Passive Mode (212,27,40,252,212,184) 
> LIST ou > GET fichier 
 
et là tu ouvres une nouvelle socket sur le serveur 212.27.40.252, port 212*256+184 = 54456 
qui te rappatries les données ...
Marsh Posté le 17-08-2005 à 09:54:36
merci mais j'avoue ne pas trop comprendre. 
T'a pas un exemple de script. Ca semble bien expliquer mais la je pige rien. Je sais juste que cela ressemble à mes commande en ftp shell
Marsh Posté le 17-08-2005 à 10:25:33
Jette un coup d'oeil du côté de PEAR. 
 
http://pear.php.net/package/Net_FTP2
Marsh Posté le 16-08-2005 à 15:39:20
Bonjour,
J'ai un site en ligne sur un ftp (ftp1) et un autre site de mise à jour sur un autre ftp (ftp2).
Je cherche à a transferer tout les fichiers contenu dans le ftp1 vers le ftp2 par le biais d'une page php.
J'ai ce code mais qui me pose problème. Il ne marche pas.
?php
// création de la connexion
$ftp_server="ftp.blabla.fr";
$ftp_user_name="aupif";
$ftp_user_pass="aupif";
$source_file=dir('/');
$destination_file=dir('/');
// Création de la connexion
$conn_id = ftp_connect("$ftp_server" );
// Authentification avec nom de compte et mot de passe
$login_result = ftp_login($conn_id, "$ftp_user_name", "$ftp_user_pass" );
// Vérification de la connexion
if ((!$conn_id) || (!$login_result)) {
echo "La connexion FTP a échoué!";
echo "Tentative de connexion à $ftp_server avec $ftp_user_name";
die;
} else {
echo "Connecté à $ftp_server, avec $ftp_user_name";
}
// Téléchargement du contenu de mon répertoire
$upload = ftp_get($conn_id, "$destination_file", "$source_file", FTP_ASCII);
// Vérification de téléchargement
if (!$upload) {
echo "Le téléchargement Ftp a échoué!";
} else {
echo "Téléchargement de $source_file sur $ftp_server en $destination_file";
}
// Fermeture de la connexion FTP.
ftp_quit($conn_id);
De plus, je souhaiterai exclure un dossier qui se trouve à la racine.
Quelqu'un peu m'aider?