IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

[FTP] Problème transfert FTP en PHP


Sujet :

Langage PHP

  1. #1
    Membre du Club
    Profil pro
    Développeur Web
    Inscrit en
    Février 2005
    Messages
    63
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Février 2005
    Messages : 63
    Points : 57
    Points
    57
    Par défaut [FTP] Problème transfert FTP en PHP
    Bonjour,
    J'ai un petit probleme (euh plutot un gros probleme)
    voila j 'ai un classe d'upload qui me permet normalement d'uploader tout type de fichier
    J'utilise pour cela un ftp_put pour uploader.La connexion au ftp fonctionne tres bien mais:


    le fichier envoyer est vid3.flv

    //exemple de remplissage de variables:
    $this->conn= id de connexion
    $file_name='32165465vid3';
    // fichier vid3 est renomer pour eviter des doublons


    $set_file_type='.flv';
    $file_path='c:/wamp/tmp\php4E.tmp';
    //provient de $_FILES[$key]['tmp_name'];


    $ret = ftp_put($this->conn,$file_name.$set_file_type,$file_path,FTP_ASCII) or die("erreur");


    $ret ne me retourne aucune erreur et le fichier est bien transferé dans le dossier ftp mais le PROBLEME, c'est que le fichier transferé ne fe jamais plus de 100ko octet alor que les fichiers de depart peuvent atteindre plusieurs mega. Je ne comprend pas d'ou viens le probleme.


    Je vous remercie d'avance pour votre aide!

    tiger63

    KE le tigre soit en toi!!

  2. #2
    Membre éclairé Avatar de grabriel
    Inscrit en
    Septembre 2006
    Messages
    946
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 946
    Points : 730
    Points
    730
    Par défaut
    Salut,

    Est-ce que t'as un champ MAX_FILE_SIZE????

    Si NON Ce champ contient la valeur de la taille maximale en octet, que le fichier peut faire, tu peux le mettre à X Mo avec un mot sur la page ne pas uploader de fichier de plus de XMo.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <input type="hidden" name="MAX_FILE_SIZE" value="1000" />

  3. #3
    Membre du Club
    Profil pro
    Développeur Web
    Inscrit en
    Février 2005
    Messages
    63
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Février 2005
    Messages : 63
    Points : 57
    Points
    57
    Par défaut ca marche toujours pas
    merci pour ta reponse mais ce n 'est pas ca le probleme, car j 'ai mis 10Mo de cache pour php donc cela devrai marcher correctement.

    Page de la classe upload :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    class upload
    {
     
            var $user_ftp = "XXXXX";
            var $pwd_ftp = "XXXXX";
            var $hostadd = "127.0.0.1";
     
     
     
              function upload()
              {
     
                       $this->conn = ftp_connect($this->hostadd,21) or die("Erreur!!! Impossible de se connecter au serveur ftp ");
                       $this->auth = ftp_login($this->conn,$this->user_ftp,$this->pwd_ftp) or die("Erreur d'identification");
                       $this->pasv = ftp_pasv($this->conn,false) or die("ERROR FTP->PASV [$this->conn]");
              }
     
             function ftp_transaction($file_path=null,$file_name=null,$file_type=null)
              {
                                      //fichieruploader=file_path
                                            //filenamedec=file_name
                                            //type_id=file_type
     
                            if(!$this->conn) //verification que la connexion est active
                             {
                                    $this->upload();
                             }
     
                             list( $application, $set_file_type) = split('[/]', $file_type);
     
                            //controle du typemime de fichier s'il est dans la base alors on recupere l'extension associée
                            $set_file_type=type_doc::existetype($set_file_type);
     
                            if ($set_file_type!=false)
                            {       
     
                                    $test=true;
                            }
                            else
                            {
                                    $test=false;   
     
                            }
     
     
                            if ($test==true)
                            {
     
     
                                    $ret = ftp_put($this->conn,$file_name.$set_file_type,$file_path,FTP_ASCII) or die("erreur");
                               //transfert du fichier sur le ftp
     
     
                                    if($ret == FTP_FAILED)
                                     {           
                                            $toto[0]='faux';
                                            $toto[1]='coucou';
                                             return $toto;
                                     }
                                     else
                                     {
                                             $toto[0]='vrai';
                                            $toto[1]=$set_file_type;
                                           return $toto;
                                     }
                            }
                            else
                            {
                                   return false;
                        }
              } 
     
     
              //_remove_file - (fichier a supprimer)   
             function _remove_file($str_filename)
             {
                            if(!$this->conn)
                            {
                                    $this->upload();
                            } 
                            sleep(3);       
                            if (ftp_delete($this->conn, $str_filename))
                            {
                                    return true;
                            }
                            else
                            {
                                    return false;
                            }   
             }
     
              //_close_connection - Close FTP Connection
                    function _close_connection()
                    {
                            ftp_close($this->conn); 
                    }
    }
    Et la page ajout_fiche qui active la classe upload :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    class page_ajoutfiche extends page{
     
        protected function entete() { //PERMET DE GERER L'ENTETE
        $entete =  new entete();
        $entete->add_title('Sport');
        $entete->add_css('design/style.css',true);
            $entete->add_javascript('javascript.js',true);
        $entete->getHTML(); 
      }
     
            protected function milieu($user)
            { //LE CORPS DE LA PAGE
     
     
                    if(!isset($_POST['valfiche']))
                     {
                    $template = new Template('./design');
                    $template->set_filenames(array('milieu' => 'ajoutfiche.tpl'));
     
                    $id = isset($_GET['id']) ? $_GET['id'] : 0;
                    $sport = new sport($id);
     
                    $template->assign_vars(array('NOMSPORT'  => $sport->nom_sport, 'IDSPORT' =>$id));
     
                    $template->pparse('milieu');
                    } else {
                            ////////////////////////////////////////////////////////////////////////////
                            //
                            // AJOUT DE LA FICHE DANS LA TABLE FICHE
                            //
                            ////////////////////////////////////////////////////////////////////////////
                            //$_POST['id_user']=$user->id_user;
                            $_POST['id_user']=$user->id_user;
                            $_POST['id_sport']=$_GET['id'];
                            $_POST['validation_fiche']=0;
                            $fiche=fiche::add($_POST);
     
     
                            ////////////////////////////////////////////////////////////////////////////
                            //
                            // UPLOAD ET AJOUT DANS LA TABLE DOCUMENT
                            //
                            ////////////////////////////////////////////////////////////////////////////
                            $i = 1;
                            $id_fiche = fiche::derniereFiche();
                            $pasbien=true;
     
                            foreach($_FILES as $key=>$val) {                               
                                    if ( $_FILES[$key]['tmp_name'] != '' ) {
                                            $fichieruploader = $_FILES[$key]['tmp_name'];
                                            list($filenamedec, $filetypedec) = explode(".", basename($_FILES[$key]['name']));
                                            $filenamedec = time().$filenamedec;
    //je renome le fichier avec l'heure puis le nom original du fichier
     
                                            $type_id = $_FILES[$key]['type'];
     
                                            $url_error = $_FILES['url']['error'];
    //Les erreurs éventuelles
                                            if($url_error > 0) {   
                                                    echo'<font face="Arial, Helvetica, sans-serif" size="2"><font color="#384A88"><br><br> CREATION<br><br></font></font>';
     
                                                    switch ($url_error) {
                                                            case 1: echo '&nbsp;&nbsp;Problème: fichier trop gros pour l\'upload'; echo "<br><br>&nbsp;&nbsp;<a href=javascript:history.back()>Retour</a></font>"; exit;
                                                            case 2: echo '&nbsp;&nbsp;Problème: fichier trop gros'; echo "<br><br>&nbsp;&nbsp;<a href=javascript:history.back()>Retour</a></font>"; exit;
                                                    }
                                            }
     
     
                                            $myftp = new upload();            
                                            $toto = $myftp->ftp_transaction($fichieruploader,$filenamedec,$type_id);
                                            //fichieruploader=file_path
                                            //filenamedec=file_name
                                            //type_id=file_type
     
                                            $myftp->_close_connection();           
     
                                            if(($toto[0]=='vrai')&&($toto[1]!='')) {                               
                                                    // L'upload s'est bien passé on ajoute le document dans la bdd
                                                    $_POST['id_fiche'] = $id_fiche;
                                                    $_POST['adr_document'] = $filenamedec.$toto[1];
                                                    $_POST['poids_document'] = $_FILES[$key]['size'];
                                                    $_POST['titre_document'] = $_POST['titre_'.$key];
                                                    $doc = document::add($_POST);
     
                                                    echo('Transfert numéro '.$i.' est transferé! ['.$_POST['adr_document'].']<br />');
                                            } else {
                                                    echo('Erreur sur le transfert numéro '.$i.'<br />');
                                                    $pasbien=false;
                                            }
                                    }
                                    else
                                    {
                                            echo 'Le fichier que vous souhaitez uploader n\'existe pas!'; 
                                            $pasbien=false;
                                    }
     
                                    $i++;
     
                            }
                            if($pasbien==false)
                            {
                            $result=fiche::del($id_fiche);
                            }
                    }
            }       
    }
    Le template :
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    <h5>{NOMSPORT} > Ajout d'une fiche</h5>
     
     
    <form id="formupload" method="post" action="index.php?page=ajoutfiche&amp;id={IDSPORT}" enctype="multipart/form-data">
    <table>
    <tr>
    <td>
    <label for="libelle_fiche">Libelle de la fiche</label>
     
    </td>
    <td>
    <input class="text" type="text" id="libelle_fiche" name="libelle_fiche" value="" size="70" maxlength="70" />
    </td>
    </tr>
    <tr>
    <td>
    <label for="objectif_fiche">Objectif de la fiche</label>
    </td>
     
    <td>
    <input class="text" type="text" id="objectif_fiche" name="objectif_fiche" value="" size="70" maxlength="70" />
    </td>
    </tr>
    <tr>
    <td>
    <label for="descriptif_fiche">descriptif de la fiche</label>
    </td>
    <td>
     
    <textarea name="descriptif_fiche" id="descriptif_fiche" class="textarea" rows="3" cols="52"></textarea>
    </td>
    </tr>
    <tr>
    <td>
    <label for="consigne_fiche">Consigne</label>
    </td>
    <td>
    <textarea name="consigne_fiche" id="consigne_fiche" class="textarea" rows="2" cols="52"></textarea>
     
    </td>
    </tr>
    <tr>
    <td>
    <label for="variante_fiche">variante</label>
    </td>
    <td>
    <textarea name="variante_fiche" id="variante_fiche" class="textarea" rows="2" cols="52"></textarea>
    </td>
     
    </tr>
    <tr>
    <td valign="top">
    <label for="docfiche">Document à associer</label>
    </td>
    <td>
    Titre du document : <input class="text" type="text" id="titre_docfiche" name="titre_docfiche" value="" size="20" maxlength="255" />&nbsp;<input class="file" type="file" id="docfiche" name="docfiche" value="http://" />
    <div id="upload">
    </div>
    <br />
    <a href="javascript:add()">Ajouter un autre document</a>
    </td>
    </tr>
    <tr align=center>
     
    <td colspan="2">
    <input class="submit" type="submit" id="valfiche" name="valfiche" value="Valider la fiche" />
    </td>
    </tr>
    </table>
    </form>



    tiger63

    Ke le tigre soit en toi!!

  4. #4
    Candidat au Club
    Inscrit en
    Décembre 2006
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 2
    Points : 2
    Points
    2
    Par défaut
    j'ai exactement les memes problemes.
    sauf que moi c'est pour mon site 1&1
    donc voila: j'essai de transferer certain fichiers php et ca ne marche pas.
    svp aidez moi

  5. #5
    Membre éclairé Avatar de grabriel
    Inscrit en
    Septembre 2006
    Messages
    946
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 946
    Points : 730
    Points
    730
    Par défaut
    Salut,

    As tu essayé de mettre la balise :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <input type="hidden" name="MAX_FILE_SIZE" value="XXXX" />
    ou XXXX est la taille maximale en octet de ton fichier, le tout dans ton formulaire entre les balises <form> et </form>.

Discussions similaires

  1. [Débutant] Transfert FTP - problème de sockets
    Par jedusort dans le forum C#
    Réponses: 5
    Dernier message: 23/12/2011, 14h22
  2. Problème de transfert ftp
    Par zoumzoum59 dans le forum Free
    Réponses: 6
    Dernier message: 22/02/2007, 22h40
  3. [FTP] problème de transfert
    Par adaneels dans le forum Serveurs (Apache, IIS,...)
    Réponses: 1
    Dernier message: 17/01/2007, 12h42
  4. [FTP] problème openclick dans php
    Par Skeud007 dans le forum Langage
    Réponses: 18
    Dernier message: 04/07/2006, 19h36
  5. Problème de transfert FTP sous IIS
    Par thanathz dans le forum Développement
    Réponses: 2
    Dernier message: 12/07/2002, 15h27

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo