Bonsoir,
Voilà depuis 4 jours que je parcours et re parcours tous les forums que j ai à ma dispo pour résoudre mon problème mais en vain.
Machine serveur :
Os : Windows Xp pro sp2
Serveur http : easyphp - mysql v4.1.9
- apache v1.3.33
- php v4.3.10
Serveur ftp : filezilla Server v0.9.18
Machine client :Firefox comme navigateur
Projet :Donc je suis en train de tester l upload de gros fichiers à partir de "Machine client" sur "Machine serveur" en utilisant le protocol http pour le champ d envois et le protocol ftp pour l upload du fichier.
Code :if(!empty($_FILES['pictures']) && $_FILES['pictures']['error'] == "0" && is_uploaded_file($_FILES['pictures']['tmp_name']))
{
$fichier_a_uploader = $_FILES['pictures']['tmp_name'];
$dossier_destination = '/' . $_FILES['pictures']['name'];
// Création de la connexion au FTP
$conn_id = ftp_connect('127.0.0.1', 21);
// Aucune limite d'execution
ini_set ('max_execution_time', 0);
ini_set ('max_input_time', 0);
set_time_limit(0);
if(empty($conn_id))
{
echo 'Échec de connexion à ftp';
}
else
{
// Définition du délai de connexion à 2 secondes
ftp_set_option($conn_id, FTP_TIMEOUT_SEC, 2);
echo "Connecté au FTP\n<br>";
// Identification avec le nom d'utilisateur et le mot de passe
$login_result = @ftp_login($conn_id, 'xevolution_ftp', 'z4q9s8d1z2x8f7a9s8s');
// on passe en mode passif pour les clients derrière in pare-feu
ftp_pasv($conn_id, true);
if(!$login_result)
{
echo "Échec d'identification à ftp://localhost/"; die;
}
else
{
$upload = @ftp_put($conn_id, $dossier_destination, $fichier_a_uploader, FTP_BINARY);
// Tentative de chargement sur le serveur FTP
if( !$upload )
{
echo 'Le fichier "' . $fichier_a_uploader . '" à été chargé avec succès.';
}
else
{
echo "Il y a eu un problème lors du chargement du fichier $fichier_a_uploader.";
}
}
// déconnexion de l accès au ftp
$deco = ftp_quit($conn_id);
}
}
?>
<table width="70%" height="10%" align="center" border="0">
<?php echo tep_draw_form('formulaire', tep_href_link('body_work_seb.php'), 'POST', 'target="_self" ENCTYPE="multipart/form-data"') . tep_draw_hidden_field('section', 'user'); ?>
<tr class="text_body">
<td height="40%" align="right" valign="top">Fichier à uploader : </td>
<td height="60%" align="left" valign="top">
<?php echo tep_draw_input_field('pictures', '', 'size="28" maxlength="255"', 'text_body', 'file') . '<br>'; ?>
</td>
</tr>
<tr>
<td width="5%" height="2" align="center" colspan="4"><?php echo tep_draw_input_field('', 'UPLOADER', '', 'text_button', 'submit'); ?></td>
</tr>
</form>
</table>
Déroulement du script :- Champ de sélection de mon fichier ( photos.rar - 90mo )
- Envoie
- Connection au serveur ftp avec succès
- Login avec succès
- Upload dans le tmp avec succès
- Transfert du fichier sur le serveur avec succès
- Pas de déonnection du serveur
Problème :Donc après avoir regarder dans la console administrateur de "FileZilla Serveur" le transfert est toujours actif mais ne transfert plus.
Mon fichier uploader fait 0ko dans le répertoire ftp de réception. Hum ???
Je kick dans la console administrateur de "FileZilla Serveur" la connection en étant bien sûr que la page à bien fini de s'éxécuter.
Et là boum mon fichier fait bien la taille de 90mo.
Mais que ce passe t'il ?
Constations :Donc j ai fait des "echo" à tous les niveaux. Regardé si la connection se passait bien, le login, et l upload.
Cependant j'ai trouvé une annomalie sur mon retour de fonction "ftp_connect()". Effectivement, il me renvoie une information du genre "$conn_id : Resource id #63" en réalisant un "echo" sur "$conn_id". Hors en regardant dans la console de "FileZilla Serveur" l'ID de connection ne correspond pas du tout.
Donc je cherche dans cette voie mais en vain.
Conclusion :Si quelqun pourrait m'aider à résoudre se problème me soulagerai des ces 4 jours de galère à parcourir google dans tous les sens.
Ce serait cool
PS : Initule de me dire y a google pour ça, j ai retourner tous les mots dans tous les sens.