Upload d'image

Petit nouveau ! | 1 Messages

08 nov. 2020, 22:28

Bonjour,
Je fais appel à vous après beaucoup... beaucoup de recherches et essais!
J'ai un formulaire dont un des champs est une photo à uploader. l'objectif est d'enregistrer le fichier dans un dossier du serveur, et entrer son path dans une base mysql
Dans le fichier d'action php, impossible de charger la photo. Après testsss, je trouve que mon $_FILES['photo'] ne renvoie rien. Et JE NE TROUVE PAS POURQUOI !
Pouvez vous m'aider?
Merci beaucoup!!

Voici le code de mon formulaire:

Code : Tout sélectionner

<form name="form_nouvelle" method="post" action="../assets/config/check.php"> Titre : <INPUT type="text" name="titre" value=""> Origine : <INPUT type="text" name="origine" value=""> Catégorie : <SELECT name="type" value="0"> <OPTION VALUE="aperitif">Apéritif</OPTION> <OPTION VALUE="entreech">Entrée chaude</OPTION> <OPTION VALUE="entreefr">Entrée froide</OPTION> <OPTION VALUE="platv">Plat - Viande</OPTION> <OPTION VALUE="platp">Plat - Poisson</OPTION> <OPTION VALUE="plata">Plat - Autre</OPTION> <OPTION VALUE="accompagnement">Accompagnement</OPTION> <OPTION VALUE="salade">Salade</OPTION> <OPTION VALUE="dessert">Dessert</OPTION> </SELECT><br> Ingrédients : <br><TEXTAREA name="ingredients" rows="7"></TEXTAREA><br> Explication : <br><TEXTAREA name="explication" rows="7"></TEXTAREA><br> Ajouter une photo : <INPUT type="file" name="photo"><INPUT type=hidden name=MAX_FILE_SIZE VALUE=128></p> <center> <INPUT type="submit" name="valider" value="Enregistrer"> </center> </form>

Et celui de mon fichier de traitement check.php:

Code : Tout sélectionner

// Constantes define('TARGET', '../../recettes/photos/'); // Repertoire cible define('MAX_SIZE', 100000); // Taille max en octets du fichier define('WIDTH_MAX', 800); // Largeur max de l'image en pixels define('HEIGHT_MAX', 800); // Hauteur max de l'image en pixels // Tableaux de donnees $tabExt = array('jpg','gif','png','jpeg'); // Extensions autorisees $infosImg = array(); // Variables $extension = ''; $message = ''; $nomImage = ''; /************************************************************ * Creation du repertoire cible si inexistant *************************************************************/ /*if( !is_dir(TARGET) ) { if( !mkdir(TARGET, 0755) ) { exit('Erreur : le répertoire cible ne peut-être créé ! Vérifiez que vous diposiez des droits suffisants pour le faire ou créez le manuellement !'); } }*/ /************************************************************ * Script d'upload *************************************************************/ if(!empty($_POST)) { // On verifie si le champ est rempli if( !empty($_FILES['photo']['name']) ) { // Recuperation de l'extension du fichier $extension = pathinfo($_FILES['photo']['name'], PATHINFO_EXTENSION); // On verifie l'extension du fichier if(in_array(strtolower($extension),$tabExt)) { // On recupere les dimensions du fichier $infosImg = getimagesize($_FILES['photo']['tmp_name']); // On verifie le type de l'image if($infosImg[2] >= 1 && $infosImg[2] <= 14) { // On verifie les dimensions et taille de l'image if(($infosImg[0] <= WIDTH_MAX) && ($infosImg[1] <= HEIGHT_MAX) && (filesize($_FILES['photo']['tmp_name']) <= MAX_SIZE)) { // Parcours du tableau d'erreurs if(isset($_FILES['photo']['error']) && UPLOAD_ERR_OK === $_FILES['photo']['error']) { // On renomme le fichier $nomImage = md5(uniqid()) .'.'. $extension; // Si c'est OK, on teste l'upload if(move_uploaded_file($_FILES['photo']['tmp_name'], TARGET.$nomImage)) { $message = 'Upload réussi !'; } else { // Sinon on affiche une erreur systeme $message = 'Problème lors de l\'upload !'; } } else { $message = 'Une erreur interne a empêché l\'uplaod de l\'image'; } } else { // Sinon erreur sur les dimensions et taille de l'image $message = 'Erreur dans les dimensions de l\'image !'; } } else { // Sinon erreur sur le type de l'image $message = 'Le fichier à uploader n\'est pas une image !'; } } else { // Sinon on affiche une erreur pour l'extension $message = 'L\'extension du fichier est incorrecte !'; } } else { // Sinon on affiche une erreur pour le champ vide $message = 'Veuillez remplir le formulaire svp !'; } } echo $message; echo $nomImage;

Mammouth du PHP | 2703 Messages

08 nov. 2020, 22:34