//on définis les valeur principale de départ :
//le prefixe venant se greffer devant le nom de la photo pour différencier la miniature
define('PREFIXE', 'mini_', TRUE);
//la largeur de la miniature
define('LARGEUR_MINI', 50, TRUE);
//la hauteur de la miniature
define('HAUTEUR_MINI', 80, TRUE);
if (!empty($_FILES))
{
//on stock l'image envoyé
$tempFile = $_FILES['Filedata']['tmp_name'];
//on stock le chemin du répertoire
$targetPath = $_SERVER['DOCUMENT_ROOT'] . 'app/webroot/uploads/';
//on stock la cible
$targetFile = str_replace('//','/',$targetPath) . $_FILES['Filedata']['name'];
//si le déplacement du fichier envoyé à fonctionné
if(move_uploaded_file($tempFile,$targetFile))
{
echo '1';
// on récupère les infos de l'image
list($largeur_orig,$hauteur_orig,$ext) = getimagesize($_FILES['Filedata']);
$nom = PREFIXE . $tempFile;
switch($ext)
{
case 1 :
//si $ext = gif
$source = createimagefromgif($_FILES['Filedata']);
break;
case 2 :
//si $ext = jpeg
$source = createimagefromjpeg($_FILES['Filedata']);
break;
case 3 :
//si $ext = png
$source = createimagefrompng($_FILES['Filedata']);
break;
}
//si l'image envoyé est plus grosse que la taille d'une miniature
if($largeur_orig>LARGEUR_MINI || $hauteur_orig>HAUTEUR_MINI)
{
// si image plus haute que large
if($largeur_orig<$hauteur_orig)
{
$hauteur_finale = HAUTEUR_MINI;
// réduction proportionnel de la largeur par rapport à la hauteur
$largeur_finale = $largeur_orig*HAUTEUR_MINI/$hauteur_orig;
}
else //sinon image plus large que haute
{
$largeur_finale = LARGEUR_MINI;
// réduction proportionnel de la hauteur par rapport à la largeur
$hauteur_finale = $hauteur_orig*LARGEUR_MINI/$largeur_orig;
}
//création de l'image de destination aux dimensions
$thumb = imagecreatetruecolor($largeur_finale, $hauteur_finale);
//fonction pour redimensionner l'image dans source dans l'image de destination
imagecopyresized($thumb, $source, 0, 0, 0, 0, $largeur_finale, $hauteur_finale, $largeur_orig, $hauteur_orig);
}
else //si elle est plus petite
{
//création de l'image de destination aux dimensions
$thumb = imagecreatetruecolor($largeur_orig, $hauteur_orig);
}
//chemin de la miniature
$dossier = $targetPath . 'mini/';
switch($ext)
{
case 1 :
imagegif($thumb,$dossier.$nom);
break;
case 2 :
imagejpeg($thumb,$dossier.$nom);
break;
case 3 :
imagepng($thumb,$dossier.$nom);
break;
}
}
}
?>
Voilà mon code.
En première partie je récupère une image que je colle dans un répertoire, jusque là tout va bien mon script s’execute à merveille.
Mais arrivé le moment fascidique de la création de miniature, pas de message d’erreur, pas de beugue, pas de crash, bref, rien du tout. Mais mon script ne créé pas les miniatures…
Avez-vous une idée de m’erreur à l’origine du problème?
Merci d’avance pour vos réponse.