PHP Problème upload image

Fermé
Solar13 Messages postés 204 Date d'inscription lundi 23 mai 2011 Statut Membre Dernière intervention 14 mai 2014 - 27 oct. 2011 à 17:16
Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 - 27 oct. 2011 à 20:52
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 :(

<?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:

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 ...
0
Solar13 Messages postés 204 Date d'inscription lundi 23 mai 2011 Statut Membre Dernière intervention 14 mai 2014
27 oct. 2011 à 19:08
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ù.
0
Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894
27 oct. 2011 à 20:52
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
// 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
0