Bonjour,
J'ai suivis le tuto concernant la galerie en php, je vous remercie pour ce superbe tuto.
J'ai rencontré des erreurs lorsque j'essaye d'uploader des images du nom: DSCN0182.JPG, elle créé une miniature mais toute noir et je n'ai plus l'image de la taille réelle.
Pour insérer une image je demande ou on l'upload donc je récupère le nom du dossier
if($_POST'galer']!='1')//retour -1 si il a rien selectionné comme nom de dosier
{
$dossierimg=$_POST'galer'];
if(!empty($_FILES))
{
require("imgClass.php");
$img=$_FILES'img']; //stock fichier dans la variable img
$ext=strtolower(substr($img'name'],-3)); // récupère extension du fichier
$allow_ext=array("jpg","gif","png"); // tableau des extensions autorisés
if(in_array($ext,$allow_ext)) // si le fichier image est dans ce tableau alors on traite
{
move_uploaded_file($img'tmp_name'],"images/$dossierimg/".$img'name']); // on déplace ce fichier du dossier temporaire pour le dossier images/
Img::creerMin("images/$dossierimg/".$img'name'],"images/$dossierimg/min",$img'name'],200,100); // on créer une miniature pour l'afficher sur le site
Img::ConvertirJPG("images/$dossierimg/".$img'name']); // on convertie l'image en jpg et on la supprime
}
else
{
$erreur="Votre fichier n'est pas une image"; // affiche ce message si le fichier envoyé ne figure pas dans le tableau des extensions autorisés
}
}
}
la class img:
class Img{
static function creerMin($img,$chemin,$nom,$mlargeur=200,$mhauteur=100){
// On supprime l'extension du nom
$nom = substr($nom,0,-4);
// On récupère les dimensions de l'image
$dimension=getimagesize($img);
// On crée une image à partir du fichier récupérer
if(substr(strtolower($img),-4)==".jpg"){$image = imagecreatefromjpeg($img); }
else if(substr(strtolower($img),-4)==".png"){$image = imagecreatefrompng($img); }
else if(substr(strtolower($img),-4)==".gif"){$image = imagecreatefromgif($img); }
// L'image ne peut etre redimensionne
else{return false; }
// Création des miniatures
// On cré une image vide de la largeur et hauteur voulue
$miniature =imagecreatetruecolor ($mlargeur,$mhauteur);
// On va gérer la position et le redimensionnement de la grande image
if($dimension[0]>($mlargeur/$mhauteur)*$dimension[1] ){ $dimY=$mhauteur; $dimX=$mhauteur*$dimension[0]/$dimension[1]; $decalX=-($dimX-$mlargeur)/2; $decalY=0;}
if($dimension[0]<($mlargeur/$mhauteur)*$dimension[1]){ $dimX=$mlargeur; $dimY=$mlargeur*$dimension[1]/$dimension[0]; $decalY=-($dimY-$mhauteur)/2; $decalX=0;}
if($dimension[0]==($mlargeur/$mhauteur)*$dimension[1]){ $dimX=$mlargeur; $dimY=$mhauteur; $decalX=0; $decalY=0;}
// on modifie l'image crée en y plaçant la grande image redimensionné et décalée
imagecopyresampled($miniature,$image,$decalX,$decalY,0,0,$dimX,$dimY,$dimension[0],$dimension[1]);
// On sauvegarde le tout
imagejpeg($miniature,$chemin."/".$nom.".jpg",90);
return true;
}
static function ConvertirJPG($img)
{
// On crée une image à partir du fichier récupérer
if(substr(strtolower($img),-4)==".jpg"){$image = imagecreatefromjpeg($img); }
else if(substr(strtolower($img),-4)==".png"){$image = imagecreatefrompng($img); }
else if(substr(strtolower($img),-4)==".gif"){$image = imagecreatefromgif($img); }
else { return false;}
//unlink($img); //supprime l'image dans l'ancienne extension
imagejpeg($image,substr($img,0,-3)."jpg",90); //on met l'extension .jpg à l'image
return true;
}
}
voici les erreurs:
( ! ) Warning: getimagesize(images/Commune/DSCN0182.JPG) [function.getimagesize]: failed to open stream: No such file or directory in C:\wamp\www\projet officiel\imgClass.php on line 9
( ! ) Warning: imagecreatefromjpeg(images/Commune/DSCN0182.JPG) [function.imagecreatefromjpeg]: failed to open stream: No such file or directory in C:\wamp\www\projet officiel\imgClass.php on line 11
Call Stack
( ! ) Warning: imagecopyresampled() expects parameter 2 to be resource, boolean given in C:\wamp\www\projet officiel\imgClass.php on line 25
Call Stack
( ! ) Warning: imagecreatefromjpeg(images/Commune/DSCN0182.JPG) [function.imagecreatefromjpeg]: failed to open stream: No such file or directory in C:\wamp\www\projet officiel\imgClass.php on line 34
Call Stack
( ! ) Warning: imagejpeg() expects parameter 1 to be resource, boolean given in C:\wamp\www\projet officiel\imgClass.php on line 39
Call Stack
Merci.
C'est parce que ton image est trop grande, j'ai aussi eu ce problème. La seule solution que j'ai trouvé est de redimensionner les images avant..
J'avoue que ça serait plus cool de pouvoir uploader toutes les tailles d'images !
En faite s'est la configuration de php qui te limite (généralement de base s est 2MB)!
Trouvez les lignes avec :upload_max_size ou encore post_max_size dans php.ini changer le 2 MB et voila!!