Cela fait quelques jours que j'essaye de venir à bout de ce script... Mais je n'y arrive pas.
J'ai cherché des erreurs, mais je ne les trouve pas.
Voici ce que fais ce script :
1)Il demande à l'utilisateur d'envoyer une image
2)Il vérifie que c'est une image de moins de 1 mo
3)Il accepte l'image en l'enregistrant sous un numéro qui s'incrémente dans un fichier
4)Il fait une miniature de l'image, qui supprime la "grande" image
Voici le script :
<?php
include('connexion_bdd.php');
if ($_FILES['envoi'] == true && $_FILES['envoi']['error'] == 0) //Un fichier est envoyé sans erreur
{
if ($_FILES['envoi']['size'] < 1000000) //Si le fichier fait moins de 1 Mo
{
$infosfichier = pathinfo($_FILES['envoi']['name']);
$extension_upload = $infosfichier['extension'];
$extensions_autorisees = array('jpg', 'jpeg', 'gif', 'png');
if (in_array($extension_upload, $extensions_autorisees)) //Si le fichier à la bonne extension
{
$compteur = fopen('nameimg.cyar', 'r+');
$ligne = fgets($compteur);
$ligne++;
fseek($compteur, 0);
fputs($compteur, $ligne);
fclose($compteur);
mysql_query("INSERT INTO uploads VALUES (' ', '".$_SESSION['id']."', '".$ligne."', '".$infosfichier['extension']."')");
move_uploaded_file($_FILES['monfichier']['tmp_name'], 'uploads/' . basename($ligne));
$nom = $ligne . $infosfichier['extension'];
include('imgClass.php');
Img::creerMin('uploads/'.$nom,'uploads/min',$nom,215,112);
}
else //si le fichier n'a pas la bonne extension
{
echo "Délolé, mais le fichier envoyé n'est pas une image reconnue par le serveur";
}
}
else //si le fichier fait plus de 1 Mo
{
echo "Désolé, mais l'image envoyée est trop grosse.";
}
} ?>
Et la fonction creerMin :
<?php
class Img{
static function creerMin($img,$chemin,$nom,$mlargeur=100,$mhauteur=100){
$dimension=getimagesize($img);
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; }
$miniature =imagecreatetruecolor ($mlargeur,$mhauteur);
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;}
imagecopyresampled($miniature,$image,$decalX,$decalY,0,0,$dimX,$dimY,$dimension[0],$dimension[1]);
if(substr(strtolower($img),-4)==".jpg"){imagejpeg($miniature,$chemin."/".$nom.".jpg",90);}
else if(substr(strtolower($img),-4)==".png"){imagejpeg($miniature,$chemin."/".$nom.".png",90);}
else if(substr(strtolower($img),-4)==".gif"){imagejpeg($miniature,$chemin."/".$nom.".gif",90);}
return true;
}
}
?>
L'erreur affichée est : Merci d'avance pour votre aide !Warning: getimagesize(uploads/jpg) [function.getimagesize]: failed to open stream: No such file or directory in www/imgClass.php on line 8