script php ôur copier contenu

script php ôur copier contenu - PHP - Programmation

Marsh Posté le 28-06-2005 à 17:46:13    

bonjour a tous
 
je cherche commenr ecrire en php cette action >> lorsque on clikc sur un bouton ca me copie le UN DOSSIER present sur le site vers une adresse ftp pedefini?
 
exemple
 
onclick:copy http://moi.com/uploads/mise_a_jours to ftp://moi:lui@192.168.0.3:21/C
 
s'il vous plait un coup de main,c'est pas grave si c'est pas du php du moment que je peut l'integrer a ma page php

Reply

Marsh Posté le 28-06-2005 à 17:46:13   

Reply

Marsh Posté le 28-06-2005 à 17:51:47    

Tu peux le faire (c'est la méthode que j'utilise pour sauvegarder mes sites).
Regardes du coté des fonctions FTP de PHP.
http://www.nexen.net/docs/php/annotee/ftp.intro.php

Reply

Marsh Posté le 28-06-2005 à 18:16:53    

merci je l'avait deja vu ,le probleme c'est que je sait pas ecrire en php,donc pour accoupler toute ses commandes je voit pas comment faire,j'ai trouver ca qui a l'air interressant ,mais ou je doit mettre le mot de passe est et les chemin des dossier a copier?
<?php
// Mise en place d'une connexion basique
$conn_id = ftp_connect($ftp_server);  
 
// Identification avec un nom d'utilisateur et un 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 au serveur $ftp_server pour l'utilisateur $ftp_user_name";  
        exit;  
    } else {
        echo "Connexion au serveur $ftp_server, pour l'utilisateur $ftp_user_name";
    }
 
// Chargement d'un fichier
$upload = ftp_put($conn_id, $destination_file, $source_file, FTP_BINARY);  
 
// Vérification du status du chargement
if (!$upload) {  
        echo "Le chargement FTP a échoué!";
    } else {
        echo "Chargement de $source_file vers $ftp_server en tant que $destination_file";
    }
 
// Fermeture du flux FTP
ftp_close($conn_id);  
?>  
 
ta pas un script d'exemple a me fournir ,puisque tu t'en sert deja?
merci pour ton aide!!!

Reply

Marsh Posté le 28-06-2005 à 21:23:06    

Alors voilà comment je fais perso.
C'est un vieux script qui mériterait surement quelques optimisations, mais il marche bien, je me prends pas la tête plus que ça.
En fait, mon script ne copie pas les dossiers, il copie l'intérieur des dossiers qui existent à l'identique en local chez moi.
Je lance un serveur FTP chez moi, avec FTPServ, tu te montes un FTP en moins de 4 minutes (en comptant 2 minutes pour le téléchargement :D).
Bref, j'ai l'arborescence des dossiers déjà chez moi, le script chope mon adresse IP quand je le lance et se connecte donc à mon FTP local.
Ensuite, il scrute les répertoires que je lui ai donné et recopie leur contenu en local. ça me sert à avoir une copie conforme chez moi des données dynamique de mon site (album photo, avatars, smileys, etc.).
 

Code :
  1. <?php
  2. // Mise en place d'une connexion basique
  3. $ftp_server=$_SERVER['REMOTE_ADDR'];
  4. $conn_id = ftp_connect($ftp_server,21);
  5. $ftp_user_name='monlogin';
  6. $ftp_user_pass='monmotdepasse';
  7. // Identification avec un nom d'utilisateur et un mot de passe
  8. $login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);
  9. // Vérification de la connexion
  10. if ((!$conn_id) || (!$login_result)) {
  11.         echo "La connexion FTP a échoué !";
  12.         echo 'Tentative de connexion au serveur '.$ftp_server.' pour l\'utilisateur '.$ftp_user_name.'<br />';
  13.         die();
  14.     } else {
  15.         echo 'Connexion au serveur '.$ftp_server.', pour l\'utilisateur '.$ftp_user_name.'<br />';
  16.     }
  17. // Déclaration des répertoires à récupérer
  18. $nbdir=2;
  19. $dir_name[0]='Avatars';
  20. $dir_src[0]='../forum/avatars/upload/sm/*.jpg';
  21. $dir_dest[0]='forum/avatars/upload/sm/';
  22. $dir_name[1]='Albums Photos';
  23. $dir_src[1]='../forum/album/gd/*.jpg';
  24. $dir_dest[1]='forum/album/gd/';
  25. for ($i=0;$i<$nbdir;$i++)  
  26. {
  27. echo '<hr /><hr />R&eacute;cup&eacute;ration '.$dir_name[$i].'<hr /><hr />';
  28. foreach (glob($dir_src[$i]) as $filename)
  29. {
  30. $source_file=$filename;  
  31. $destination_file=$dir_dest[$i].basename($filename);
  32. $upload = ftp_put($conn_id, $destination_file, $source_file, FTP_BINARY);
  33.  
  34. // Vérification du status du chargement
  35. if (!$upload) {
  36.   echo "Le chargement FTP a échoué!";
  37.  } else {
  38.   echo 'Chargement de '.$source_file.' vers '.$ftp_server.' en tant que '.$destination_file.'<br />';
  39.  }
  40. }
  41. }
  42. // Fermeture du flux FTP
  43. ftp_close($conn_id);
  44. ?>


Message édité par The-Shadow le 28-06-2005 à 21:25:12
Reply

Marsh Posté le 28-06-2005 à 22:45:29    

Impeccable le script ,par contre je l'ai essayer ,mais j'ai une erreur a la ligne 4 ,et je la met ou l'adresse de mon ftp qui est 192.168.0.3?
un grand merci pour ton aide inestimable

Reply

Marsh Posté le 28-06-2005 à 23:00:06    

un petit complement d'imformation pour que tu sache a quoi va servir ce script
 
ce script va servir a des centaines de personne pour mettre a jour leur consoles de jeux xbox ,le script sera sur mon site et lorsque l'utilisateur clickera sur le bouton "mise a jours" le script copiera 2 archives rar de 102 mo total d'un dossier de mon site sur la xbox 'chemin:ftp://xbox:xbox@1982.168.0.3:21/E/update
 
voila pour les explications

Reply

Marsh Posté le 28-06-2005 à 23:36:32    

ça m'étonnerais que l'adresse de ton ftp soit 192.168.0.3. :D
Mais autrement, je pige pas, tu ne peux pas transformer une XBox en serveur FTP ? Si ? Non ? En fait j'y connais rien en XBox. :D

Reply

Marsh Posté le 28-06-2005 à 23:54:20    

une xbox c'est ni plus ni moins que un ordinateur cpu 300 mhz disque dur 8 giga,carte graphique nvidia,elle est relier a l'ordinateur par cable ethernet croiser et l'adresse ftp c'est ftp://xbox:xbox@192.168.0.3 pour toute les xbox qui on etait modifier grace a mes compiles et a mon site ,c'est a dire plus de mille en 114 jours,mais tout ca me dit pas ou mettre l'adresse ftp de la xbox et pourquoi j'ai une erreur parsec je sait plus quoi a la ligne 4,stp aide moi a resoudre ce probleme

Reply

Marsh Posté le 29-06-2005 à 00:04:25    

Bah l'adresse FTP, c'est la ligne 3, $ftp_server=$_SERVER['REMOTE_ADDR'];, tu remplaces $_SERVER['REMOTE_ADDR']; par l'adresse FTP de ta XBox, mais c'est zarb comme adresse IP. Essaye plutot de rentrer ton adresse IP Internet ou un truc du genre.

Reply

Marsh Posté le 29-06-2005 à 00:21:01    

zut toujour l'erreur a la ligne 4  
regarde a cette adresse
http://daviddu54.free.fr/t.php
 
c'est correct comme ca?
 
?php  
// Mise en place d'une connexion basique  
$ftp_server='ftp://192.168.0.3';  
$conn_id = ftp_connect($ftp_server,21);  
 
$ftp_user_name='xbox';  
$ftp_user_pass='xbox';  

Reply

Marsh Posté le 29-06-2005 à 00:21:01   

Reply

Marsh Posté le 29-06-2005 à 00:35:37    

Arf, c'est peut-être free qui a des limitations au niveau gestion FTP par PHP chez Free. :/
Tu as essayé en local ?

Reply

Marsh Posté le 29-06-2005 à 00:36:32    

non bien vu je vais essayer

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed