Bonjour à tous,
Depuis deux trois jours j'ai un problème avec la fonction qui upload les images. J'utilise la class faite par Grafikart pour upload move et créer une min de l'image souhaitée.
Voicie l’erreur que j'obtiens :
Warning: getimagesize(images/MaintenanceLeak/P1000062.JPG) [function.getimagesize]: failed to open stream: No such file or directory in C:\wamp\www\Galeade2\imgClass.php on line 9
Suivant les photos ça marche ou non, la je comprend pas le problème vue que ça marche un coup sur deux ...
Alors si quelqu'un sait d’où ça peut venir, ça me dépannerai bien :).
En effet je viens de tester et c'est les images en JPG qui ne marchent pas. Comment je peut faire alors pour qu'elles fonctionnent avec la fonction de grafikart ?
Je viens de regarder la classe et en effet il a spécifié le format jpg et non JPG.
Il faut le rajouter alors mais ne connaissant pas sa classe je ne peux te dire ou le mettre.
Voila la classe
<?php
class Img{
static function creerMin($img,$chemin,$nom,$mlargeur=100,$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é une image à partir du fichier récup
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é une image à partir du fichier récup
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; }
unlink($img);
imagejpeg($image,substr($img,0,-3)."jpg",90);
return true;
}
}
?>
J'ai essayé dans la classe de faire:
if(substr(strtolower($img),-4)==".JPG"){$image = imagecreatefromjpeg($img); }
Et même de faire un
if(substr(strtolower($img),-4)==".jpg"|| ".JPG"){$image = imagecreatefromjpeg($img); }
et ça ne marche pas.
Voila l'appel de ma fonction :
if (!empty($_FILES)) {
require("imgClass.php");
$img3 = $_FILES'Maintenancepicture'];
$_SESSION'fichier2'] = $img3'name'];
$ext = strtolower(substr($img3'name'], -3));
$allow_ext = array('JPG','JPEG','jpg', 'png', 'gif');
if (in_array($ext, $allow_ext)) {
Img::convertirJPG("images/MaintenanceLeak/" . $img3'name']);
move_uploaded_file($img3'tmp_name'], "images/MaintenanceLeak/" . $img3'name']);
Img::creerMin("images/MaintenanceLeak/" . $img3'name'], "images/MaintenanceLeak", $img3'name'], 320, 240);
}
else {
$erreur = "Votre fichier n'est pas une image";
}
}
il faut faire
if((substr(strtolower($img),-4)==".jpg") || (substr(strtolower($img),-4)==".JPG")){$image = imagecreatefromjpeg($img); }
Bonjour, je viens de tester et ça ne marche pas.
voici la page d’erreur que j'ai :
Warning: getimagesize(images/fuites/IMGP1096.JPG) [function.getimagesize]: failed to open stream: No such file or directory in C:\wamp\www\Galeade2\imgClass.php on line 9
Warning: imagecreatefromjpeg(images/fuites/IMGP1096.JPG) [function.imagecreatefromjpeg]: failed to open stream: No such file or directory in C:\wamp\www\Galeade2\imgClass.php on line 11
Warning: imagecopyresampled() expects parameter 2 to be resource, boolean given in C:\wamp\www\Galeade2\imgClass.php on line 27
Alors ce qui est bizarre c'est que le lien de mon image est bien récupéré et inséré sur la base, puis j'ai une "miniature" qui est faites, mais c'est juste une photo noir.
Ne devrais je pas modifier cette ligne aussi :
imagejpeg($miniature,$chemin."/".$nom.".jpg",90);
En renommant le fichier ça ne marche pas, il faut que je le réenregistre en jpg en passant par un logiciel.