Précédent   Forum des professionnels en informatique > PHP > Langage > Fichiers
Fichiers Forum d'entraide sur les fichiers avec PHP. Avant de poster -> FAQ fichiers et Sources fichiers
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 12/12/2006, 12h52   #1
Nouveau Membre du Club
 
Développeur Web
Inscription : février 2005
Messages : 63
Détails du profil
Informations personnelles :
Âge : 27

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : février 2005
Messages : 63
Points : 25
Points : 25
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!!
tiger63 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/12/2006, 13h38   #2
Membre chevronné
 
Avatar de grabriel
 
Inscription : septembre 2006
Messages : 935
Détails du profil
Informations forums :
Inscription : septembre 2006
Messages : 935
Points : 626
Points : 626
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 :
1
2
 
<input type="hidden" name="MAX_FILE_SIZE" value="1000" />
grabriel est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/12/2006, 14h11   #3
Nouveau Membre du Club
 
Développeur Web
Inscription : février 2005
Messages : 63
Détails du profil
Informations personnelles :
Âge : 27

Informations professionnelles :
Activité : Développeur Web

Informations forums :
Inscription : février 2005
Messages : 63
Points : 25
Points : 25
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 :
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 :
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 :
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!!
tiger63 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/12/2006, 20h32   #4
Invité de passage
 
Inscription : décembre 2006
Messages : 2
Détails du profil
Informations forums :
Inscription : décembre 2006
Messages : 2
Points : 1
Points : 1
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
yaK2manD est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/12/2006, 12h19   #5
Membre chevronné
 
Avatar de grabriel
 
Inscription : septembre 2006
Messages : 935
Détails du profil
Informations forums :
Inscription : septembre 2006
Messages : 935
Points : 626
Points : 626
Salut,

As tu essayé de mettre la balise :
Code :
<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>.
grabriel est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 23h39.


 
 
 
 
Partenaires

Hébergement Web