Erreur durant l'importation de fichier
Résolu
ismael-ouatt
Messages postés
78
Date d'inscription
Statut
Membre
Dernière intervention
-
ismael-ouatt Messages postés 78 Date d'inscription Statut Membre Dernière intervention -
ismael-ouatt Messages postés 78 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
J'ai un code qui me permet de rentrer des données dans un formulaire puis d'uploader un fichier de type doc, docx, pdf, xls et xslx. Voici le code HTML du formulaire:
Et voici le code PHP du traitement de ce formulaire et de l'enregistrement en bdd:
Mon problème est que chaque fois que j'éssai de renseigner le formulaire pour l'enregistrer en bdd, c'est le message d'erreur suivant qui s'affiche:
J'ai cherché l'erreur d'importation de mon fichier pendant longtempmais je n'arrive pas à l'identifier, quelqu'un pourrait-il m'aider SVP ?
Merci !
J'ai un code qui me permet de rentrer des données dans un formulaire puis d'uploader un fichier de type doc, docx, pdf, xls et xslx. Voici le code HTML du formulaire:
<form method="post" action="" enctype="multipart/form-data"> <legend>Enregistrement du certificat d'étalonnage et de la périodicité :</legend> <div id="block"> <div> <label for="select_etalon">L'étalon:</label> <select name="select_etalon" required> <option value=""></option> <?php $req = $bdd -> query('SELECT id_etalon,nom_etalon FROM etalon ORDER BY nom_etalon'); while($etalon = $req -> fetch()) { ?> <option value="<?php echo $etalon['id_etalon']; ?>"><?php echo $etalon['nom_etalon']; ?></option> <?php } $req -> closeCursor(); ?> </select> <label for="periodicite">Périodicité</label> <input type="number" name="periodicite" max="15" min="1" style="height: 30px" required> <select name="moa" required style="height: 30px;"> <option value=""></option> <option value="mois">Mois</option> <option value="année">Années</option> </select> <br><br> </div> <div> <label>Date d'étalonnage</label> <select name="jj"> <script language="JavaScript">for(i=1;i<=31;i++)document.write('<option value="'+i+'">'+i+'</option>');</script> </select> <select name="mm"> <script language="JavaScript">for(i=1;i<=12;i++)document.write('<option value="'+i+'">'+i+'</option>');</script> </select> <select name="aa"> <script language="JavaScript">var d = new Date();var aaaa = d.getFullYear();for(i=2013;i<=aaaa;i++)document.write('<option value="'+i+'">'+i+'</option>');</script> </select> <label for="date_proch">Date du prochain étalonnage</label> <select name="jr"> <script language="JavaScript">for(i=1;i<=31;i++)document.write('<option value="'+i+'">'+i+'</option>');</script> </select> <select name="moi"> <script language="JavaScript">for(i=1;i<=12;i++)document.write('<option value="'+i+'">'+i+'</option>');</script> </select> <select name="an"> <script language="JavaScript">var d = new Date();var aaaa = d.getFullYear();for(i=2013;i<=aaaa+10;i++)document.write('<option value="'+i+'">'+i+'</option>');</script> </select> </div> <div> <label for="ce_etal">N° du certificat d'étalonnage</label><input type="text" name="ce_etal" id="ce_etal" placeholder="CE Etalon" value="<?php if(isset($_POST['ce_etal'])){echo $_POST['ce_etal'];} ?>" /> <label for="fce">Certificat d'étalonnage (pdf, doc,docx, xls, xlsx)</label> <!-- MAX_FILE_SIZE doit précéder le champ input de type file --> <input type="hidden" name="MAX_FILE_SIZE" value="30000" /> <input type="file" name="fce" required> </div> </div> <br> <input type="submit" name="envoyer" value="Envoyer"> </form>
Et voici le code PHP du traitement de ce formulaire et de l'enregistrement en bdd:
<?php if(isset($_POST['envoyer'])) { $select_etalon = $_POST['select_etalon']; $periodicite = $_POST['periodicite'].' '.$_POST['moa']; $date_etalonnage = $_POST['aa'].''.$_POST['mm'].''.$_POST['jj']; $date_proch = $_POST['an'].''.$_POST['moi'].''.$_POST['jr']; $ce_etal = htmlspecialchars($_POST['ce_etal']); $nom_fic = $_FILES['fce']['name']; $type_fic = $_FILES['fce']['type']; $taille_fic = $_FILES['fce']['size']; $tmp_fic = $_FILES['fce']['tmp_name']; $code_erreur = $_FILES['fce']['error']; $compoforname = 'ce'.$select_etalon.$_POST['jj'].''.$_POST['mm'].''.$_POST['aa']; //$ext_fic = strtolower(end(explode('.',$_FILES['fce']['name']))); $ext_fic = strtolower(substr(strrchr($_FILES['fce']['name'], '.'),1)); $extensions = array("pdf","doc","docx","xls","xlsx"); $taille_max = 3145728; if(in_array($ext_fic,$extensions) === FALSE) { $erreur = '<strong>Votre fichier doit être au format pdf, doc, docx, xls, ou xlsx !</strong>'; } else { if($taille_fic > $taille_max) { $erreur = '<strong>La taille de votre fichier doit ëtre inférieur à 3 Mo !</strong>'; } else { $chemin = "documentation/fichiers/ce_etalons/".$compoforname.".".$ext_fic; $resultat=move_uploaded_file($tmp_fic,$chemin); if($resultat) { $reqete=$bdd->prepare('INSERT INTO periodicite_etalon (id_etalon,date_precedente,date_suivante,periodicite,fce) VALUES (?,?,?,?,?)'); $reqete->execute(array($select_etalon,$date_etalonnage,$date_proch,$periodicite,$compoforname.".".$ext_fic)); //incertion du ce etalon dans la table étalon $incce = $bdd -> prepare('UPDATE etalon ce_etalon = ? WHERE id_etalon = ?'); $incce -> execute(array($ce_etal,$select_etalon)); $message='<strong>Périodicité sauvé avec succès !</strong>'; } else { $erreur = '<strong>Erreur durant l\'importation de votre fichier !</strong>'; } } } } ?>
Mon problème est que chaque fois que j'éssai de renseigner le formulaire pour l'enregistrer en bdd, c'est le message d'erreur suivant qui s'affiche:
$erreur = '<strong>Erreur durant l\'importation de votre fichier !</strong>';comme si le code n'arrivait pas à entrer dans la boucle après la ligne suivante:
$resultat=move_uploaded_file($tmp_fic,$chemin);
J'ai cherché l'erreur d'importation de mon fichier pendant longtempmais je n'arrive pas à l'identifier, quelqu'un pourrait-il m'aider SVP ?
Merci !
A voir également:
- Erreur durant l'importation de fichier
- Fichier bin - Guide
- Fichier epub - Guide
- Fichier rar - Guide
- Comment réduire la taille d'un fichier - Guide
- Fichier .dat - Guide
4 réponses
Salut,
Active l'affichage des messages d'erreur PHP en ajoutant ce code au début de ton fichier php :
Le message d'erreur devrait permettre de mieux cibler le problème.
Bonne journée,
Active l'affichage des messages d'erreur PHP en ajoutant ce code au début de ton fichier php :
ini_set('display_errors', true); error_reporting(E_ALL);
Le message d'erreur devrait permettre de mieux cibler le problème.
Bonne journée,
Ce qui me parait bizarre c'est que lorsque je l'utilise pour uploader les fichiers image(lorsque j'autorise l'importation de fichier d'extension image biensur), ça marche nikel, mais pas avec les documents je n'arrive pas à importer cela me fatigue ??????
yg_be
Messages postés
23541
Date d'inscription
Statut
Contributeur
Dernière intervention
Ambassadeur
1 584
bonjour, peux-tu ajouter
print_r($_files);en cas d'erreur?
ça ne marche pas