Plusieurs input file, form php
Résolu
oxymore64
Messages postés
34
Date d'inscription
Statut
Membre
Dernière intervention
-
oxymore64 Messages postés 34 Date d'inscription Statut Membre Dernière intervention -
oxymore64 Messages postés 34 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
J'ai un formulaire qui fonctionne très bien. Cependant, j'ai ajouté deux input file mais les fichiers qui y sont "uploadé" ne sont pas envoyés. Quand je le teste je ne reçois sur ma boîte mail que le fichier du premier champ.
Pourriez-vous m'aider ?
Merci d'avance.
Mon form
Le traitement
Et les inputs
J'ai un formulaire qui fonctionne très bien. Cependant, j'ai ajouté deux input file mais les fichiers qui y sont "uploadé" ne sont pas envoyés. Quand je le teste je ne reçois sur ma boîte mail que le fichier du premier champ.
Pourriez-vous m'aider ?
Merci d'avance.
Mon form
<form action="<?php $_SERVER['PHP_SELF']; ?>" method="post" enctype="multipart/form-data" name="form2" id="form2">
Le traitement
//ON VA GENERER UNE VARIABLE DU NOM DE LA VARIABLE POST foreach ( $_POST as $post => $val ) { $$post = $val; } if (empty($data)) $data = ''; if (empty($humain)) $erreur_humain = '<span class="red","textareaMaxCharsMsg">Champ obligatoire</span>'; if (empty($nom)) $erreur_nom = '<span class="red","textfieldRequiredMsg">Champ obligatoire</span></span>'; if (empty($prenom)) $erreur_prenom = '<span class="red","textfieldRequiredMsg">Champ obligatoire</span></span>'; if (empty($styletexte2)) $erreur_styletexte2 = '<span class="red","textfieldRequiredMsg">Champ obligatoire</span></span>'; if (empty($delai)) $erreur_delai = '<span class="red","textfieldRequiredMsg">Champ obligatoire</span></span>'; if (empty($combi_langues)) $erreur_combi_langues = '<span class="red","textfieldRequiredMsg">Champ obligatoire</span></span>'; if (empty($mail)) $erreur_mail = '<span class="red","textfieldRequiredMsg">Champ obligatoire</span>'; if ((!empty($mail)) && (!preg_match("!^[a-zA-Z0-9._-]+@[a-zA-Z0-9._-]{2,}\.[a-zA-Z]{2,4}$!",$mail))) $erreur_format_mail = '<span class="red","textfieldInvalidFormatMsg">Format non valide</span>'; if (empty($message)) $erreur_message = '<span class="red","textareaRequiredMsg"><br/>Champ obligatoire</span>'; if ((!empty($message)) && (strlen($message) > $taille_msg)) $erreur_taille_message = '<span class="red","textareaMaxCharsMsg"><br/>Le nombre maximum de caractères a été dépassé.</span>'; if ($_FILES['parcourir']['size'] > $taille_fichier) $erreur_taille_fichier = '<span class="red","textareaRequiredMsg">Fichier trop volumineux</span>'; $extension_auth = strtolower(strrchr($_FILES['parcourir']['name'], ".")); if((!empty($_FILES['parcourir']['name'])) && (!in_array($extension_auth, $autorisation_ext))) $erreur_type_fichier = '<span class="red","textareaRequiredMsg">Format de fichier non accepté</span>'; if((!empty($_FILES['parcourir']['name'])) && ($_FILES['parcourir']['error'] > 0)) $erreur_transfert_fichier = '<span class="red","textareaRequiredMsg">Erreur durant le transfert du fichier</span>'; if ($_FILES['parcourir2']['size'] > $taille_fichier) $erreur_taille_fichier = '<span class="red","textareaRequiredMsg">Fichier trop volumineux</span>'; $extension_auth = strtolower(strrchr($_FILES['parcourir2']['name'], ".")); if((!empty($_FILES['parcourir2']['name'])) && (!in_array($extension_auth, $autorisation_ext))) $erreur_type_fichier = '<span class="red","textareaRequiredMsg">Format de fichier non accepté</span>'; if((!empty($_FILES['parcourir2']['name'])) && ($_FILES['parcourir2']['error'] > 0)) $erreur_transfert_fichier = '<span class="red","textareaRequiredMsg">Erreur durant le transfert du fichier</span>'; if ($_FILES['parcourir3']['size'] > $taille_fichier) $erreur_taille_fichier = '<span class="red","textareaRequiredMsg">Fichier trop volumineux</span>'; $extension_auth = strtolower(strrchr($_FILES['parcourir3']['name'], ".")); if((!empty($_FILES['parcourir3']['name'])) && (!in_array($extension_auth, $autorisation_ext))) $erreur_type_fichier = '<span class="red","textareaRequiredMsg">Format de fichier non accepté</span>'; if((!empty($_FILES['parcourir3']['name'])) && ($_FILES['parcourir3']['error'] > 0)) $erreur_transfert_fichier = '<span class="red","textareaRequiredMsg">Erreur durant le transfert du fichier</span>'; if ((empty($erreur_nom)) && (empty($erreur_mail)) &&(empty($erreur_format_mail)) && (empty($erreur_message)) && (empty($erreur_taille_fichier)) && (empty($erreur_type_fichier)) && (empty($erreur_humain)) && (empty($robot))) { $mail_ok = 1; $from = stripslashes($civilite.' '.$nom)."<".stripslashes($mail).">"; $mime_boundary="==Multipart_Boundary_x".md5(mt_rand())."x"; $tmp_name = $_FILES['parcourir']['tmp_name']; $type = $_FILES['parcourir']['type']; $name = $_FILES['parcourir']['name']; $size = $_FILES['parcourir']['size']; $tmp_name2 = $_FILES['parcourir2']['tmp_name']; $type2 = $_FILES['parcourir2']['type']; $name2 = $_FILES['parcourir2']['name']; $size2 = $_FILES['parcourir2']['size']; $tmp_name3 = $_FILES['parcourir3']['tmp_name']; $type3 = $_FILES['parcourir3']['type']; $name3 = $_FILES['parcourir3']['name']; $size3 = $_FILES['parcourir3']['size']; // Message $msg_texte = "Nom : $nom\n\n"; $msg_texte .= "Prenom : $prenom\n\n"; $msg_texte .= "Civilite : $civilite\n\n"; $msg_texte .= "Societe : $societe\n\n"; $msg_texte .= "Mél. : $mail\n\n"; $msg_texte .= "Type de traduction : $styletexte2\n\n"; $msg_texte .= "Nombre de mots : $nombre_de_mots\n\n"; $msg_texte .= "Delai : $delai\n\n"; $msg_texte .= "Langue : $combi_langues\n\n"; $msg_texte .= "Methode de connnaissance du site : $decouverte\n\n"; $msg_texte .= "Message :\n\n"; $msg_texte .= $message; if(is_uploaded_file($tmp_name)) { $file = fopen($tmp_name,'rb'); $data = fread($file,filesize($tmp_name)); fclose($file); $data = chunk_split(base64_encode($data)); } $headers = "From: $from\r\n" . "MIME-Version: 1.0\r\n" . "Content-Type: multipart/mixed;\r\n" . " boundary=\"{$mime_boundary}\""; $msg = "This is a multi-part message in MIME format.\n\n" . "--{$mime_boundary}\n" . "Content-Type: text/plain; charset=\"iso-8859-1\"\n" . "Content-Transfer-Encoding: 7bit\n\n" . $msg_texte . "\n\n"; $msg .= "--{$mime_boundary}\n" . "Content-Type: {$type};\n" . " name=\"{$name}\"\n" . "Content-Transfer-Encoding: base64\n\n" . $data . "\n\n" . "--{$mime_boundary}--\n"; // Function mail() mail($destinataire, $sujet_mail, $msg, $headers); echo 'Nous avons bien pris en compte votre demande. Nous vous répondrons dans les meilleurs délais.<br/><br/><br/> Vous allez maintenant être redirigé(e) vers la page d\'accueil.'; echo '<meta http-equiv="Refresh" content="5; URL='.$url.'">'; } } //ON AFFICHE LE FORMULAIRE UNIQUEMENT SI IL N'A PAS ETE VALIDE if(!isset($mail_ok)) { ?>
Et les inputs
<td colspan="3"><input name="parcourir" type="file" id="parcourir" value="Parcourir" alt="Parcourir" title="La taille du fichier ne doit pas excéder 25 Mo. Dans le cas contraire, veuillez contacter nos services."/> <?php //ON AFFICHE LES ERREURS DE FICHIERS (TAILLE / FORMAT) if (isset($erreur_type_fichier)) echo $erreur_type_fichier; if (isset($erreur_taille_fichier)) echo $erreur_taille_fichier; if (isset($erreur_transfert_fichier)) echo $erreur_transfert_fichier; ?> <input name="parcourir2" type="file" id="parcourir2" value="Parcourir" alt="Parcourir" title="La taille du fichier ne doit pas excéder 25 Mo. Dans le cas contraire, veuillez contacter nos services."/> <?php //ON AFFICHE LES ERREURS DE FICHIERS (TAILLE / FORMAT) if (isset($erreur_type_fichier)) echo $erreur_type_fichier; if (isset($erreur_taille_fichier)) echo $erreur_taille_fichier; if (isset($erreur_transfert_fichier)) echo $erreur_transfert_fichier; ?> <input name="parcourir3" type="file" id="parcourir3" value="Parcourir" alt="Parcourir" title="La taille du fichier ne doit pas excéder 25 Mo. Dans le cas contraire, veuillez contacter nos services."/> <?php //ON AFFICHE LES ERREURS DE FICHIERS (TAILLE / FORMAT) if (isset($erreur_type_fichier)) echo $erreur_type_fichier; if (isset($erreur_taille_fichier)) echo $erreur_taille_fichier; if (isset($erreur_transfert_fichier)) echo $erreur_transfert_fichier; ?></td>
A voir également:
- Plusieurs input file, form php
- .Bin file - Guide
- Host file - Guide
- .Dat file - Guide
- Iso file - Guide
- File sdcard/dcim - Télécharger - Gestion de fichiers
2 réponses
Bon j'ai trouvé. Pour ceux que ça intéresse :
Puis
Attention de ne fermer avec "--{$mime_boundary}--\n"; que sur la dernière ligne.
if(is_uploaded_file($tmp_name)) { $file = fopen($tmp_name,'rb'); $data = fread($file,filesize($tmp_name)); fclose($file); $data = chunk_split(base64_encode($data)); } if(is_uploaded_file($tmp_name2)) { $file = fopen($tmp_name2,'rb'); $data = fread($file,filesize($tmp_name2)); fclose($file); $data = chunk_split(base64_encode($data)); } if(is_uploaded_file($tmp_name3)) { $file = fopen($tmp_name3,'rb'); $data = fread($file,filesize($tmp_name3)); fclose($file); $data = chunk_split(base64_encode($data)); }
Puis
$msg .= "--{$mime_boundary}\n" . "Content-Type: {$type};\n" . " name=\"{$name}\"\n" . "Content-Transfer-Encoding: base64\n\n" . $data . "\n\n"; $msg .= "--{$mime_boundary}\n" . "Content-Type: {$type2};\n" . " name=\"{$name2}\"\n" . "Content-Transfer-Encoding: base64\n\n" . $data . "\n\n"; $msg .= "--{$mime_boundary}\n" . "Content-Type: {$type3};\n" . " name=\"{$name3}\"\n" . "Content-Transfer-Encoding: base64\n\n" . $data . "\n\n" . "--{$mime_boundary}--\n";
Attention de ne fermer avec "--{$mime_boundary}--\n"; que sur la dernière ligne.