[FTP] upload de fichiers via PHP
bonjour,
j'essaie de faire une petite page pour uploader des fichiers lourds via ftp.
Voici le code
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
|
// 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:
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}§ion=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}§ion=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.