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?