Pb insertion d'image GD dans base Mysql champ longblob

Signaler
Messages postés
144
Date d'inscription
mercredi 16 juin 2004
Statut
Membre
Dernière intervention
22 mars 2006
-
Messages postés
1154
Date d'inscription
mardi 9 septembre 2003
Statut
Membre
Dernière intervention
15 août 2009
-
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">



</TD>

';

}



} // fin du else

?>



merci de votre aide !



Frederic

vive VB !!!, vive la prog !!!

1 réponse

Messages postés
1154
Date d'inscription
mardi 9 septembre 2003
Statut
Membre
Dernière intervention
15 août 2009
17
tu aurais pas oublié un header? Moi pour afficher une jpeg construite en php, je mets header("Content-type: image/jpeg");



Pour ma part, j'utilise la méthode suivante: depuis un fichier
create_image.php, je crée l'image (en terminant par
header("Content-type: image/jpeg"); imagejpeg($image);
imagedestroy($image); ) et ensuite pour afficher l'image, j'appelle le
fichier ainsi: ">,
comme ça, pas de problème de headers placés après du texte! Et tu peux
ajouter un paramètre en get pour dire l'image que tu veux: "> par exemple.



Enjoy!


*****
THINK -> SEEK -> ASK