Envoyer un formulaire avec champ fichier en base de données

Par Anouchka25, il y a 4 ans


Base de données MySQL

Bonjour
Je souhaiterais envoyer un formulaire avec champ fichier en base de données. Les données ne s'insèrent pas encore mois le fichier, il n'est pas non plus dans le dossier uploads. Voici mon code de traitement du formulaire :

// On vérifie si la variable existe et sinon elle vaut NULL $nom = isset($_POST['nom']) ? $_POST['nom'] : NULL; $prenom = isset($_POST['prenom']) ? $_POST['prenom'] : NULL; $ladate = isset($_POST['ladate']) ? $_POST['ladate'] : NULL; $numsecu = isset($_POST['numsecu']) ? $_POST['numsecu'] : NULL; if(isset($_FILES['file'])){ $tmpName = $_FILES['file']['tmp_name']; $name = $_FILES['file']['name']; $size = $_FILES['file']['size']; $error = $_FILES['file']['error']; $tabExtension = explode('.', $name); $extension = strtolower(end($tabExtension)); //Tableau des extensions que l'on accepte $extensions = ['jpg', 'png', 'jpeg', 'gif']; //Taille max que l'on accepte $maxSize = 400000; if(in_array($extension, $extensions) && $size <= $maxSize && $error == 0){ $uniqueName = uniqid('', true); //uniqid génère quelque chose comme ca : 5f586bf96dcd38.73540086 $file = $uniqueName.".".$extension; //$file = 5f586bf96dcd38.73540086.jpg move_uploaded_file($tmpName, 'uploads/'.$file); $sql = "INSERT INTO users (nom, prenom, ladate, numsecu, monfichier) VALUES (?,?,?,?,?)"; $stmt= $pdo->prepare($sql); $stmt->execute([$nom, $prenom, $ladate, $numsecu, $file]); } else{ echo "Mauvaise extension"; } }

Merci

1 réponse

Carouge10, il y a 4 ans

bonjour.
les erreurs pour PDO sont-elles activées ?
tu as bien mis le enctype dans la déclaration du formulaire ?
tu as regardé que les donnes arrive bien sur la page de traitement du formulaire ? a l'aide de la fonction var_dump ?