PHP Problème upload image
Solar13
Messages postés
204
Date d'inscription
Statut
Membre
Dernière intervention
-
Alain_42 Messages postés 5361 Date d'inscription Statut Membre Dernière intervention -
Alain_42 Messages postés 5361 Date d'inscription Statut Membre Dernière intervention -
Bonjour à vous,
J'essaye de faire un upload d'image dans une bdd.
L'enregistrement se fait bien au niveau du titre, du nom de l'image et du texte de l'image, mais l'upload ne se fait, il me dit à chaque fois que l'extention du fichier est incorrect.
Je dois avoir des erreurs dans la structure de mon code, si quelqu'un pouvait m'aiguiller, je ne trouve vraiment pas :(
J'essaye de faire un upload d'image dans une bdd.
L'enregistrement se fait bien au niveau du titre, du nom de l'image et du texte de l'image, mais l'upload ne se fait, il me dit à chaque fois que l'extention du fichier est incorrect.
Je dois avoir des erreurs dans la structure de mon code, si quelqu'un pouvait m'aiguiller, je ne trouve vraiment pas :(
<?php require("connexion/conf.php"); $conn = mysql_connect($sql_serveur, $sql_user, $sql_passwd) or trigger_error(mysql_error(),E_USER_ERROR); mysql_query("SET CHARACTER SET 'utf8';")or die(mysql_error()); mysql_select_db($sql_bdd, $conn); if(isset($_POST['action'])){ // Récupération des variables nécessaires $titre_image = mysql_real_escape_string($_POST['titre_image']); $texte_image = mysql_real_escape_string($_POST['texte_image']); $url_image = mysql_real_escape_string($_POST['fichier']); $sq="insert into images values('',\"$titre_image\",\"$texte_image\",\"$url_image\")"; $quer=mysql_query($sq ) or die('erreur sq: '.mysql_error()); define('TARGET', 'images/'); define('MAX_SIZE', 200000); define('WIDTH_MAX', 800); define('HEIGHT_MAX', 800); $tabExt = array('jpg','gif','png','jpeg'); $infosImg = array(); $extension = ''; $message = ''; $nomImage = ''; 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 !'); } } if(!empty($_POST)) { // On verifie si le champ est rempli if( !empty($_FILES['fichier']['name']) ) { // Recuperation de l'extension du fichier $extension = pathinfo($_FILES['fichier']['name'], PATHINFO_EXTENSION); // On verifie l'extension du fichier if(in_array(strtolower($extension),$tabExt)) { // On recupere les dimensions du fichier $infosImg = getimagesize($_FILES['fichier']['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['fichier']['tmp_name']) <= MAX_SIZE)) //on redimentionne limage $x = 300; $y = 200; # Taille en pixel de l'image redimensionnée if ($infosImg) echo 'Image redimensionnée ... '; if ($infosImg['mime']=='image/jpeg' ) { $img_big = imagecreatefromjpeg($_FILES['fichier']['tmp_name']); # On ouvre l'image d'origine $img_new = imagecreate($x, $y); # création de la miniature $img_mini = imagecreatetruecolor($x, $y) or $img_mini = imagecreate($x, $y); // copie de l'image, avec le redimensionnement. imagecopyresized($img_mini,$img_big,0,0,0,0,$x,$y,$infosImg[0],$infosImg[1]); imagejpeg($img_mini,$_FILES['fichier']['tmp_name'] ); } elseif ($infosImg['mime']=='image/png' ) { $img_big = imagecreatefrompng($_FILES['fichier']['tmp_name']); # On ouvre l'image d'origine $img_new = imagecreate($x, $y); # création de la miniature $img_mini = imagecreatetruecolor($x, $y) or $img_mini = imagecreate($x, $y); // copie de l'image, avec le redimensionnement. imagecopyresized($img_mini,$img_big,0,0,0,0,$x,$y,$infosImg[0],$infosImg[1]); imagepng($img_mini,$_FILES['fichier']['tmp_name'] ); } elseif ($infosImg['mime']=='image/gif' ) { $img_big = imagecreatefromgif($_FILES['fichier']['tmp_name']); # On ouvre l'image d'origine $img_new = imagecreate($x, $y); # création de la miniature $img_mini = imagecreatetruecolor($x, $y) or $img_mini = imagecreate($x, $y); // copie de l'image, avec le redimensionnement. imagecopyresized($img_mini,$img_big,0,0,0,0,$x,$y,$infosImg[0],$infosImg[1]); imagegif($img_mini,$_FILES['fichier']['tmp_name'] ); } { // Parcours du tableau d'erreurs if(isset($_FILES['fichier']['error']) && UPLOAD_ERR_OK === $_FILES['fichier']['error']) { // On renomme le fichier $nomImage = md5(uniqid()) .'.'. $extension; // Si c'est OK, on teste l'upload if(move_uploaded_file($_FILES['fichier']['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 !'; } ?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>Ajouter un Client</title> </head> <body> <center> <?php if( !empty($message) ) { echo '<p>',"\n"; echo "\t\t<strong>", htmlspecialchars($message) ,"</strong>\n"; echo "\t</p>\n\n"; } ?> <?php echo '<p style="color:#ff0000;font-weight:bold;">Entrée correctement ajouté à la base de données</p>'."<br><br><a href=\"addcategorie.php\">Ajouter un nouveau client</a>"."<br><br><a href=\"admin.php\">Revenir à l'accueil</a>"; } else{ ?> <center> <h1>Ajouter une catégorie:</h1> <br /> <form action="addimage.php" method="post"> <input type="hidden" name="action" value="add"> Ajouter le titre:<br><input type="text" name="titre_image"><br /><br /> Ajouter le texte:<br><textarea name="texte_image"></textarea><br /><br /> <fieldset><label for="fichier_a_uploader" title="Recherchez le fichier à uploader !">Ajouter l'image:</label> <input type="hidden" name="MAX_FILE_SIZE" value="<?php echo MAX_SIZE; ?>" /> <input name="fichier" type="file" id="fichier_a_uploader" /></fieldset> <br> <br> <input type="submit" name="submit" value="Envoyer"> </form> <br> <font face="Verdana" size="2"><a href="admin.php">Revenir à l'accueil</a></font> </center> <?php } ?> </center> </body> </html>
A voir également:
- PHP Problème upload image
- Image iso - Guide
- Upload video youtube - Télécharger - Diffusion
- Légender une image - Guide
- Reduire taille image - Guide
- Acronis true image - Télécharger - Sauvegarde
3 réponses
Ca fait longtemps que je n'ai plus fait du php ...
Est ce que l'enregistrement du nom du fichier se fait bien au niveau de la bdd ?
En ce qui concerne l'upload au niveau du serveur, faut voir comment il a été configuré.
Comme je te l'ai dit, cela fait longtemps que je n'ai plus fait de php ...
Est ce que l'enregistrement du nom du fichier se fait bien au niveau de la bdd ?
En ce qui concerne l'upload au niveau du serveur, faut voir comment il a été configuré.
Comme je te l'ai dit, cela fait longtemps que je n'ai plus fait de php ...
En fait, cela marchait quand j'avais l'upload a part.
C'est pour que je pense que c'est une erreur au niveau de l'ordre de traitement, mais je ne trouve pas où.
C'est pour que je pense que c'est une erreur au niveau de l'ordre de traitement, mais je ne trouve pas où.
oui c'est un pb de structure de ton code, tu dis avoir toujours le message d'erreur "extension fichier incorecte"
hors en faisant la relation des { }:
else
{
// Sinon on affiche une erreur pour l'extension
$message = 'L\'extension du fichier est incorrecte !';
}
correspond au test :
if( !empty($_FILES['fichier']['name']) )
pas trop logique !
de plus tu as
donc reprend tous tes if else
hors en faisant la relation des { }:
else
{
// Sinon on affiche une erreur pour l'extension
$message = 'L\'extension du fichier est incorrecte !';
}
correspond au test :
if( !empty($_FILES['fichier']['name']) )
pas trop logique !
de plus tu as
// copie de l'image, avec le redimensionnement. imagecopyresized($img_mini,$img_big,0,0,0,0,$x,$y,$infosImg[0],$infosImg[1]); imagegif($img_mini,$_FILES['fichier']['tmp_name'] ); } { //que fait cette ouverture d'accolade la au milieu // Parcours du tableau d'erreurs if(isset($_FILES['fichier']['error'])&& UPLOAD_ERR_OK === $_FILES['fichier']['error']) {
donc reprend tous tes if else