par
bob56@ » 16 déc. 2014, 16:11
Bonjour
j'ai ce script qui fonctionne pour extension .jpg , bon dossier "upload-images" avec la date et nom correct !
Par contre avec .gif et png les images sont envoyés à la racine et sans date ?
Une idée serait bienvenue, Merci
<?php
function redimension_image($fichier, $poidsMax, $largeurMax, $hauteurMax, $dossier = './upload-images/') {
$retour = 1;
if($fichier['size'] <= $poidsMax) {
$retour = 2;
$infosfichier = pathinfo($fichier['name']);
$extension_upload = strtolower($infosfichier['extension']);
$extensions_autorisees = array('jpg', 'jpeg', 'gif', 'png');
$nomImg = basename($fichier['name']);
$date = "fichier_du_".date("d-m-Y-His");
if(in_array($extension_upload, $extensions_autorisees)) {
$retour = 0;
$infos = getimagesize($fichier['tmp_name']);
$largeur = $infos[0];
$hauteur = $infos[1];
if($largeur > $largeurMax || $hauteur > $hauteurMax) {
if($extension_upload == 'jpg' || $extension_upload == 'jpeg') {
$objImage = imagecreatefromjpeg($fichier['tmp_name']);
}
elseif($extension_upload == 'gif') {
$objImage = imagecreatefromgif($fichier['tmp_name']);
}
else {
$objImage = imagecreatefrompng($fichier['tmp_name']);
}
if($largeur >= $hauteur && $largeur > $largeurMax) {
// REDUCTION PAR LA LARGEUR
$nouvelleLargeur = $largeurMax;
$reduction = ( ($largeurMax*100) / $largeur );
$nouvelleHauteur = ( ($hauteur*$reduction) / 100 );
}
else {
// REDUCTION PAR LA HAUTEUR
$nouvelleHauteur = $hauteurMax;
$reduction = ( ($hauteurMax*100) / $hauteur );
$nouvelleLargeur = ( ($largeur*$reduction) / 100 );
}
$nouvelleImage = imagecreatetruecolor($nouvelleLargeur , $nouvelleHauteur);
if($extension_upload == 'png') {
// fond transparent (pour les png avec transparence)
imagesavealpha($nouvelleImage, true);
$trans_color = imagecolorallocatealpha($nouvelleImage, 0, 0, 0, 127);
imagefill($nouvelleImage, 0, 0, $trans_color);
}
imagecopyresampled($nouvelleImage, $objImage, 0, 0, 0, 0, $nouvelleLargeur, $nouvelleHauteur, $largeur, $hauteur);
imagedestroy($objImage);
if($extension_upload == 'jpg' || $extension_upload == 'jpeg') {
imagejpeg($nouvelleImage, $dossier.$date.$nomImg, 100);
}
elseif($extension_upload == 'gif') {
imagegif($nouvelleImage, $dossier.$date.$nomImg);
}
else {
imagepng($nouvelleImage, $dossier.$date.$nomImg, 9);
}
}
else {
move_uploaded_file($fichier['tmp_name'], $nomImg);
}
}
}
return $retour;
}
?>
Bonjour :)
j'ai ce script qui fonctionne pour extension .jpg , bon dossier "upload-images" avec la date et nom correct !
Par contre avec .gif et png les images sont envoyés à la racine et sans date ?
Une idée serait bienvenue, Merci
[php]<?php
function redimension_image($fichier, $poidsMax, $largeurMax, $hauteurMax, $dossier = './upload-images/') {
$retour = 1;
if($fichier['size'] <= $poidsMax) {
$retour = 2;
$infosfichier = pathinfo($fichier['name']);
$extension_upload = strtolower($infosfichier['extension']);
$extensions_autorisees = array('jpg', 'jpeg', 'gif', 'png');
$nomImg = basename($fichier['name']);
$date = "fichier_du_".date("d-m-Y-His");
if(in_array($extension_upload, $extensions_autorisees)) {
$retour = 0;
$infos = getimagesize($fichier['tmp_name']);
$largeur = $infos[0];
$hauteur = $infos[1];
if($largeur > $largeurMax || $hauteur > $hauteurMax) {
if($extension_upload == 'jpg' || $extension_upload == 'jpeg') {
$objImage = imagecreatefromjpeg($fichier['tmp_name']);
}
elseif($extension_upload == 'gif') {
$objImage = imagecreatefromgif($fichier['tmp_name']);
}
else {
$objImage = imagecreatefrompng($fichier['tmp_name']);
}
if($largeur >= $hauteur && $largeur > $largeurMax) {
// REDUCTION PAR LA LARGEUR
$nouvelleLargeur = $largeurMax;
$reduction = ( ($largeurMax*100) / $largeur );
$nouvelleHauteur = ( ($hauteur*$reduction) / 100 );
}
else {
// REDUCTION PAR LA HAUTEUR
$nouvelleHauteur = $hauteurMax;
$reduction = ( ($hauteurMax*100) / $hauteur );
$nouvelleLargeur = ( ($largeur*$reduction) / 100 );
}
$nouvelleImage = imagecreatetruecolor($nouvelleLargeur , $nouvelleHauteur);
if($extension_upload == 'png') {
// fond transparent (pour les png avec transparence)
imagesavealpha($nouvelleImage, true);
$trans_color = imagecolorallocatealpha($nouvelleImage, 0, 0, 0, 127);
imagefill($nouvelleImage, 0, 0, $trans_color);
}
imagecopyresampled($nouvelleImage, $objImage, 0, 0, 0, 0, $nouvelleLargeur, $nouvelleHauteur, $largeur, $hauteur);
imagedestroy($objImage);
if($extension_upload == 'jpg' || $extension_upload == 'jpeg') {
imagejpeg($nouvelleImage, $dossier.$date.$nomImg, 100);
}
elseif($extension_upload == 'gif') {
imagegif($nouvelleImage, $dossier.$date.$nomImg);
}
else {
imagepng($nouvelleImage, $dossier.$date.$nomImg, 9);
}
}
else {
move_uploaded_file($fichier['tmp_name'], $nomImg);
}
}
}
return $retour;
}
?>[/php]