bonjour,

j'essaie de faire une petite page pour uploader des fichiers lourds via ftp.

Voici le code

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
 
// test de connextion par ftp
            $connect_ok=false;
            $conn_id = ftp_connect(FTP_SERVER);
            $login_result = ftp_login($conn_id, FTP_USER, FTP_PASSWD);
 
            // check connection
            if ((!$conn_id) || (!$login_result))
            {
               $messages[]="Impossible de se connecter au serveur ".FTP_SERVER;
            }
            else
            {
               $messages[]="Connecté à ".FTP_SERVER." : Vous pouvez envoyer des fichiers par FTP";
               $connect_ok=true;
            }
 
            //on envoi le fichier s'il y en a un
            if ($_POST['envoi_fichier'])
            {
               ftp_chdir($conn_id, PREFIXE.FTPFILE_DIR);
 
               $destination_file=$_FILES['le_fichier']['name'];
 
               // upload the file
               $upload = ftp_put($conn_id, $destination_file, $le_fichier, FTP_BINARY);
 
               // check upload status
               if (!$upload)
               {
                  $messages[]="L'envoi du fichier a échoué. Veuillez recommencer";
               }
               else
               {
                  $messages[]="L'envoi du fichier a été réalisée avec succès.<br>Informations sur le fichier (".$_FILES['le_fichier']['name']."-".$_FILES['le_fichier']['size']." octets)";
               }
            }
 
 
            ftp_close($conn_id);
dans la page en question
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
 
<form name="formulaire" method="post" action="{$script}?id_menu={$id_menu}&section=ftp&page=accueil" enctype="multipart/form-data">
   <input name="envoi_fichier" type="hidden" value="ok">
   <input type="hidden" name="MAX_FILE_SIZE" value="20000000" />
 
            <input type="hidden" name="action" value="enregistrer" />
            <table id="tableau">
               <caption>
               <tfoot id="bouton">
                  <td>
              <a href="{$script}?id_menu={$id_menu}&section=documents&page=liste" class="btnnormal">
               Retour
            </a>
              <a id="atest" href="javascript:document.formulaire.submit();" class="btnnormal">
               Envoyer le fichier par FTP
            </a>
 
                  </td>
               </tfoot>
               <tbody>
 
                 <tr class="{cycle values="l_sombre,"}">
                     <td>
 
                        <label for="le_fichier">Fichier à envoyer :</label>
                        <input type="file" name="le_fichier" />
 
                     </td>
                  </tr>
               </tbody>
            </table>
 
</form>
ça marche pour des fichiers inférieurs à 2mo environ mais au dela, pas de messages d'erreurs mais soit le fichier est uploadé qu'en partie (c'est-à-dire que si on ouvre un pdf, on a un message d'acrobat comme quoi le fichier est corrompu) ou pas du tout.

Dans le php_info, j'ai un POST_MAX_SIZE à 8M. D'ailleurs,est-ce que cela joue étant donné que je passe par le ftp ?

J'ai essayé avec d'autres scripts PHP trouvé sur le net et c'est le même souci.

Auriez-vous une idée ?

par avance merci.