Pb d'insertion dans mysql image GD

Fermé
frederic92 Messages postés 23 Date d'inscription lundi 21 novembre 2005 Statut Membre Dernière intervention 3 avril 2006 - 10 janv. 2006 à 15:52
crabs Messages postés 908 Date d'inscription lundi 18 avril 2005 Statut Membre Dernière intervention 3 août 2008 - 10 janv. 2006 à 17:32
Bonjour , j'ai un probleme pour mettre en base une image generé par GD, pourtant l'image non redentionné poar gd apparais bien a l'affichage masi celle qui es reduite par gd


lors de son affichage le message d'erreur suivan apparais :

L'image « http://127.0.0.1/Form/apercu.php?id=1 » ne peut être affichée, car elle contient des erreurs.

voici mon code :
<?php

include("../classes/mysql.class.php");

$type_fichier = $_FILES['fichier']['type'];
// recuperation de la taille de la photo
$taille_fichier = $_FILES['fichier']['size'];
// recuperation de id_boutique
$boutique = $_POST["boutique"] ;
// image blob
$imag_blob = file_get_contents ($_FILES['fichier']['tmp_name']);
$imag_blob= addslashes($imag_blob);

// dimention du fichier image
$infos_img = getimagesize($_FILES['fichier']['tmp_name']);

$largeur = $infos_img[0];
$hauteur = $infos_img[1];



// verification de l'extention du fichier

if( !strstr($type_fichier, 'jpg') && !strstr($type_fichier, 'jpeg') && !strstr($type_fichier, 'bmp') && !strstr($type_fichier, 'png') )
{
echo"Le fichier n'est pas une image valide ( jpg, jpeg, bmp ou png )";
}
else
{



// Largeur maximal de l'image du logo
$largeurimage=120;

// On vérigfie si un fichier IMAGE a bien été transféré
// none c'est la valeur prise par la champ du formulaire s'il n'y a pas eut de nouvelle image de rentrée


if ($_FILES['fichier']['tmp_name'] !='' )
{
// définition de l'espace destiné à recevoir les images
$nom_destination="./images/";

// on renomme la vignette la date du download
$date=date("ymdhis");
$nouveau_nom=$date.".jpg";

if (is_uploaded_file($_FILES['fichier']['tmp_name']))
{
move_uploaded_file($_FILES['fichier']['tmp_name'], $nom_destination.$nouveau_nom);
}

$image="$nom_destination$nouveau_nom";
$img=imagecreatefromjpeg($image);

if ($largeur>$largeurimage)
{
$entroplargeur=$largeur-$largeurimage;
$largeur2=$largeur-$entroplargeur;
$hauteur2=round(($largeur2/$largeur)*$hauteur);
$img3=imagecreatetruecolor($largeur2,$hauteur2);
imagecopyresized($img3,$img,0,0,0,0,$largeur2,$hauteur2,$largeur,$hauteur);
$image_retaillee="$nom_destination$nouveau_nom";
imagejpeg($img3,$image_retaillee,100);

// enregistrement dans la base de la miniature
$img3= addslashes($img3);

$sql = new mysql("localhost","root","", "boutiques","1","erreur" );
$sql->requete("INSERT INTO image (imag_nom,imag_taille,imag_lienrep,imag_type,imag_image,imag_mini,imag_largeur,imag_hauteur,id_boutique) VALUES ('$nouveau_nom', '$taille_fichier', '$nom_destination','$type_fichier','$imag_blob', '$img3','$largeur', '$hauteur','$boutique')","0");
$sql->deconnexion();


}
}
Else
{
$nouveau_nom="";
}

// On vérifie qu'il y'a une image
If ($_FILES['fichier']['tmp_name']!='')
{
echo ' Upload de la photo ci-dessous reussi :

<table width="751" border="0" cellspacing="10" cellpadding="0" align="center">
<TR>
<TD width="'.$largeurimage.'" valign="top">
<img src="'.$nom_destination.$nouveau_nom.'">

</TD>
';
}

} // fin du else
?>

merci de votre aide !

Frederic
A voir également:

1 réponse

crabs Messages postés 908 Date d'inscription lundi 18 avril 2005 Statut Membre Dernière intervention 3 août 2008 507
10 janv. 2006 à 17:32
Salut,
Pour l'image réduite, il faut que tu appliques la même méthode que pour
l'image de taille normale :
- tu fait créer le fichier image réduite par la gd
- tu la mets dans le blob
- tu effaces le fichier image réduite
Y a surement d'autre solution (utiliser ob_start() par ex).
A+, crabs
0