FTP

louna_ha Messages postés 27 Date d'inscription mardi 4 avril 2006 Statut Membre Dernière intervention 2 avril 2007 - 4 juil. 2006 à 11:25
cs_chamallow Messages postés 363 Date d'inscription mercredi 18 mai 2005 Statut Membre Dernière intervention 29 janvier 2007 - 4 juil. 2006 à 16:36
Salut tous le monde voila j'ai réaliser le code suivant qui permet de charger des fichiers via le protocole FTP. Et voila le message d'erreur afficher : "Connexion réussie au serveur ftpLe chargement FTP a échoué!"
les fichier charger doivent être stocker sous le dossier "echanges" c'est pour cette raison que j'ai spécifier ce dossier comme fichier local est ce c'est possible?

Aider Moi svp!!!
Voila le code :
<?php

// Connexion et sélection de la base
$link = mysql_connect("localhost", "root", "")
or die("Impossible de se connecter");
mysql_select_db("bd") or die("Could not select database");

// Mise en place d'une connexion basique*
$ftp_server='';
$ftp_user_name='';
$ftp_user_pass='';
$source_file=print_r($_FILE['source_file_mail']);

$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 ";
exit;
} else {
echo "Connexion réussie au serveur ftp";
}


$destination_file="../echanges";

// Chargement d'un fichier
$upload = ftp_put($conn_id, $source_file, $destination_file, FTP_BINARY);

// Vérification du status du chargement
if (!$upload) {
echo "Le chargement FTP a échoué!";
} else {
echo "Chargement de $source_file vers le serveur ftp en tant que $destination_file";
}

// Fermeture du flux FTP
ftp_close($conn_id);

mysql_close($link);
?>


Maerci d'avance!!!!

19 réponses

coockiesch Messages postés 2268 Date d'inscription mercredi 27 novembre 2002 Statut Membre Dernière intervention 13 septembre 2013 4
4 juil. 2006 à 12:07
Salut!
Tu as fait un echo des chemins $source_file et $destination_file pour vérifier que ça correspond bien avec ce que tu veux?

@++

R@f

www.allpotes.ch: Photos, humour, vidéos, gags, ...
"On dit que seulement 10 personnes au monde comprenaient Einstein. Personne ne me comprends. Suis-je un génie???"
0
louna_ha Messages postés 27 Date d'inscription mardi 4 avril 2006 Statut Membre Dernière intervention 2 avril 2007
4 juil. 2006 à 12:34
Effectivement !! c ce qui ne marche pas ici!
le chemin du $source_file ne correspond pas à celui indiquer dans le formulaire
Que dois-je faire ?
0
coockiesch Messages postés 2268 Date d'inscription mercredi 27 novembre 2002 Statut Membre Dernière intervention 13 septembre 2013 4
4 juil. 2006 à 13:06
Salut!
Quel est t il dans le formulaire? Et celui affiché? Contient-il des caractères spéciaux? ...?

Regarde sa récupération et vérifier que la variable ne transite pas par certaines fonctions qui pourraient al modifier... :)

@++

R@f

www.allpotes.ch: Photos, humour, vidéos, gags, ...
"On dit que seulement 10 personnes au monde comprenaient Einstein. Personne ne me comprends. Suis-je un génie???"
0
louna_ha Messages postés 27 Date d'inscription mardi 4 avril 2006 Statut Membre Dernière intervention 2 avril 2007
4 juil. 2006 à 13:13
Voila c le contenue du formulaire

<form method="post" action="valid_maill.php">
Joindre un fichier :


</form>

L'affichage de la fonction echo $source_file est 1 et non pas le chemain du fichier.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_chamallow Messages postés 363 Date d'inscription mercredi 18 mai 2005 Statut Membre Dernière intervention 29 janvier 2007 1
4 juil. 2006 à 14:09
<form method="post" action="valid_maill.php" enctype="multipart/form-data">
0
louna_ha Messages postés 27 Date d'inscription mardi 4 avril 2006 Statut Membre Dernière intervention 2 avril 2007
4 juil. 2006 à 15:02
voila l'erreur afficher lorsque j'ai ajouter ' enctype="multipart/form-data" ' :

Array ( [name] => essai22.txt [type] => text/plain [tmp_name] => d:\www\php\htdocs\tmp\php238B.tmp [error] => 0 [size] => 0 ) Connexion réussie au serveur ftp../echanges1Le chargement FTP a échoué!
pouriez vous m'aider svp
0
cs_chamallow Messages postés 363 Date d'inscription mercredi 18 mai 2005 Statut Membre Dernière intervention 29 janvier 2007 1
4 juil. 2006 à 15:08
$upload = ftp_put($conn_id, $source_file,  $destination_file, FTP_BINARY);

Je crois que c'est d'abord la destination et après la source dans les paramètres. Et dans la source, comme dans la destination, il faut indiquer le nom du fichier, donc pas que le répertoire final.

Essaye en tout cas d'inverser la source et la destination
0
louna_ha Messages postés 27 Date d'inscription mardi 4 avril 2006 Statut Membre Dernière intervention 2 avril 2007
4 juil. 2006 à 15:23
c encore la meme erreur:
Array ( [name] => essai22.txt [type] => text/plain [tmp_name] => d:\www\php\htdocs\tmp\php24DF.tmp [error] => 0 [size] => 0 ) Connexion réussie au serveur ftp../echanges1
Warning: ftp_put(): Unable to access 1 in d:\www\arestechnologies.net\htdocs\PageAccesClient\valid_maill.php on line 44
Le chargement FTP a échoué!
0
cs_chamallow Messages postés 363 Date d'inscription mercredi 18 mai 2005 Statut Membre Dernière intervention 29 janvier 2007 1
4 juil. 2006 à 15:31
$_FILE['source_file_mail'] --> euh c'est pas plutôt $_FILE['fil'] ?? Je dis ptet une connerie hein :p
0
louna_ha Messages postés 27 Date d'inscription mardi 4 avril 2006 Statut Membre Dernière intervention 2 avril 2007
4 juil. 2006 à 15:33
non g déja corriger ca dés le début!!!
et c encore la meme erreur!
0
cs_chamallow Messages postés 363 Date d'inscription mercredi 18 mai 2005 Statut Membre Dernière intervention 29 janvier 2007 1
4 juil. 2006 à 15:57
Mais c'est quoi ce 1 ? ce que tu récupères du formulaire?
0
louna_ha Messages postés 27 Date d'inscription mardi 4 avril 2006 Statut Membre Dernière intervention 2 avril 2007
4 juil. 2006 à 16:00
le code que j'ai réaliser ne détéermine pas le chemin de $source_file. et quand j'ai mis echo $source_file; j'obtien un 1.
0
cs_chamallow Messages postés 363 Date d'inscription mercredi 18 mai 2005 Statut Membre Dernière intervention 29 janvier 2007 1
4 juil. 2006 à 16:04
Bon je sais pas trop ce que c'est que ce 1, mais comment il va savoir où aller chercher le fichier à uploader? J'ai du zappé un truc là.
Perso, je sais que avant de faire ftp_put, moi j'utilise move_uploaded_file ou copy si ça marche pas pour le déplacer dans le dossier temporaire, et ensuite je fais ftp_put sur le fichier temp jusqu'au dossier final .
0
louna_ha Messages postés 27 Date d'inscription mardi 4 avril 2006 Statut Membre Dernière intervention 2 avril 2007
4 juil. 2006 à 16:08
Merci bien chamallow de ta patience et de ton aide.
je vais essayer de faire ce ke tu ma proposer.
est ce je peut te consulter si je trouve une autre déficulté!!!!!!!!!
0
cs_chamallow Messages postés 363 Date d'inscription mercredi 18 mai 2005 Statut Membre Dernière intervention 29 janvier 2007 1
4 juil. 2006 à 16:11
Lol oui :)
Si tu veux je peux te filer un exemple de code qui marche normalement avec la méthode que je t'ai proposé.
0
louna_ha Messages postés 27 Date d'inscription mardi 4 avril 2006 Statut Membre Dernière intervention 2 avril 2007
4 juil. 2006 à 16:14
oui stp je veux voir un exemple; parce que je me suis rendu compte que j'ai déja utiliser cette fonction avant d'établir mon ftp_put comme suit:

if(is_uploaded_file(isset($_FILES['fil']['tmp_name'])))
{
//on stocke le nom du fichier dans une variable
$compte = $_FILES['fil']['name'];

echo "Un fichier a été envoyé, nous pouvons le traiter
";

//La ligne ci dessous écrit le nom du fichier!!!
echo $_FILES['fil']['name'];

//Le fichier va être copié dans le dossier "echanges" sous le nom qu'il portait sur l'ordi de départ
move_uploaded_file($_FILES['fil']['tmp_name'],'echanges/');
}
0
cs_chamallow Messages postés 363 Date d'inscription mercredi 18 mai 2005 Statut Membre Dernière intervention 29 janvier 2007 1
4 juil. 2006 à 16:29
$deplacement_Tmp = false; //Booléen destiné à savoir si l'upload sur le dossier temporaire s'est bien passé
$deplacement_Final = false;//Booléen pour savoir si le transfert du dossier temporaire au dossier final s'est bien déroulé

if($_FILES[$nomFichier]['error'])
{
        //En cas d'erreur retournée lors de l'upload, on signale quelle est l'erreur :
        switch ($_FILES[$nomFichier]['error'])
        {
                case UPLOAD_ERR_INI_SIZE:
                       echo "La taille du fichier ".$nomFichier." &agrave; uploader d&eacute;passe la valeur maximale autoris&eacute;.";
                        break;
                 case UPLOAD_ERR_PARTIAL:
                        echo "Le fichier ".$nomFichier." n'a &eacute;t&eacute; que partiellement upload&eacute;.";
                        break;                            
                 case UPLOAD_ERR_NO_FILE :
                        echo "Aucun fichier ".$nomFichier." n\'a &eacute;t&eacute upload&eacute;.";
                         break;
           }
}
else
{
          /*  S'il n'y a eu aucune erreur lors de l'upload :  */
         if(!@move_uploaded_file($_FILES[$nomFichier]['tmp_name'],$ftp_tmp.$_FILES[$nomFichier]['name']))
         {
                //S'il y a erreur lors du déplacement du fichier dans le dossier temporaire, on essaye de copier le fichier :
                if(!@copy($_FILES[$nomFichier]['tmp_name'],$ftp_tmp.$_FILES[$nomFichier]['name']))
                {
                      //Si la copie a échoué, on le signale à l'utilisateur :
                       $deplacement_tmp = true;
                     echo ("Le fichier ".$nomFichier." n'a pas pu &ecirc;tre d&eacute;plac&eacute; vers le r&eacute;pertoire temporaire.");
                  }
           }
                    
            if(!$deplacement_tmp)
           {
                        /* Si le fichier se trouve bien dans le répertoire temporaire : */
                        
                        //On transfère le fichier du dossier temporaire au dossier final contenant toutes les images :
                        $deplacement_Final = @ftp_put($retourConn, $repFinal.$_FILES[$nomFichier]['name'],$ftp_tmp.$_FILES[$nomFichier]['name'], FTP_BINARY);
                        if(!$deplacement_Final)
                        {
                            //Si ce dernier transfert a échoué, on prévient l'utilisateur :
                            echo ("Le fichier ".$nomFichier." n'a pas pu &ecirc;tre transf&eacute;r&eacute; vers le serveur.");
                        }
                   
                        //Suppression du fichier temporaire dans le répertoire tmp d'upload :
                        if(!unlink($ftp_tmp.$_FILES[$nomFichier]['name']))
                        {
                            echo ("Le fichier ".$nomFichier." upload&eacute; temporairement n'a pas &eacute;t&eacute; effac&eacute; du dossier temporaire.");
                        }
        }
}

alors $nomFichier, c'est le nom du ficheir récupéré dans le champ Input : $nomFichier = $_FILES['fil']['name']
$ftp_tmp c'est le chemin du répertoire pour l'upload temporaire (un dossier temp)
$repFinal c'est le chemin du dossier de destination finale

Bon j'espère y'a pas de bêtises, parce que j'avais fait une fonction à partir de là plus compliquée qui répondait à mes besoins, donc j'ai essayé de l'épurer rapidement pour toi !
      
0
louna_ha Messages postés 27 Date d'inscription mardi 4 avril 2006 Statut Membre Dernière intervention 2 avril 2007
4 juil. 2006 à 16:33
Té le meilleur chamallow !!
merci bcp!!!!! :)
0
cs_chamallow Messages postés 363 Date d'inscription mercredi 18 mai 2005 Statut Membre Dernière intervention 29 janvier 2007 1
4 juil. 2006 à 16:36
Mdr tu diras ça si ça marche, et je suis loin d'être lA (la stp lol) meilleure, je m'étais juste bien renseignée au moment de faire ça lol
0
Rejoignez-nous