Problème d'upload d'avatar
Forumeur
-
Forumeur -
Forumeur -
Bonjour,
Je travaille sur un espace membre avec possibilité d'uploader une image pour le profil. Le problème est que une fois l'image uploadée, je ne peux la changer que si la nouvelle image porte la même extension. C'est embêtant car je souhaite accepter les jpg, gif et png.
J'ai beau chercher, je ne vois pas d'où vient le problème :
Je travaille sur un espace membre avec possibilité d'uploader une image pour le profil. Le problème est que une fois l'image uploadée, je ne peux la changer que si la nouvelle image porte la même extension. C'est embêtant car je souhaite accepter les jpg, gif et png.
J'ai beau chercher, je ne vois pas d'où vient le problème :
// Upload de l'image // Constantes define('TARGET', 'avatars/'); define('MAX_SIZE',230000); define('WIDTH_MAX', 800); define('HEIGHT_MAX', 800); // Tableaux de données $tabExt = array('jpg','gif','png','jpeg','JPG','GIF','PNG','JPEG'); $infosImg = array(); // Variables $extension = ''; $message = ''; $nomImage = ''; if(!empty($_POST)) { // On verifie si le champ est rempli if( !empty($_FILES['avatar']['name']) ) { // Recuperation de l'extension de l'image et mise en minuscule $extension = pathinfo($_FILES['avatar']['name'], PATHINFO_EXTENSION); $extension = strtolower(substr($_FILES['avatar']['name'],-3)); // On verifie l'extension du fichier if(in_array(strtolower($extension),$tabExt)) { // On recupere les dimensions du fichier @$infosImg = getimagesize($_FILES['avatar']['tmp_name']); if (empty($infosImg)) echo '<br/><div><h3>Your image is too large. You can change it.</h3><br /></div>'; else echo '<br/><div></div>'; // On verifie le type de l'image if($infosImg[2] >= 1 && $infosImg[2] <= 14) { // On verifie si l'image est dans les dimensions if (($infosImg[0] <= WIDTH_MAX or $infosImg[0] > WIDTH_MAX) && ($infosImg[1] <= HEIGHT_MAX or $infosImg[1] > HEIGHT_MAX) && (filesize($_FILES['avatar']['tmp_name']) <= MAX_SIZE)) //on redimensionne limage $x = 150; $y = 150; # Taille en pixel de l'image redimensionnée if ($infosImg['mime']=='image/jpeg' ) { $img_big = imagecreatefromjpeg($_FILES['avatar']['tmp_name']); # On ouvre l'image d'origine @$img_new = imagecreate($x, $y); # création de la miniature @$img_mini = imagecreatetruecolor($x, $y) or @$img_mini = imagecreate($x, $y); // copie de l'image, avec le redimensionnement. @imagecopyresized($img_mini,$img_big,0,0,0,0,$x,$y,$infosImg[0],$infosImg[1]); @imagejpeg($img_mini,$_FILES['avatar']['tmp_name'] ); } elseif ($infosImg['mime']=='image/jpg' ) { $img_big = imagecreatefrompng($_FILES['avatar']['tmp_name']); # On ouvre l'image d'origine $img_new = imagecreate($x, $y); # création de la miniature $img_mini = imagecreatetruecolor($x, $y) or $img_mini = imagecreate($x, $y); // copie de l'image, avec le redimensionnement. imagecopyresized($img_mini,$img_big,0,0,0,0,$x,$y,$infosImg[0],$infosImg[1]); imagepng($img_mini,$_FILES['avatar']['tmp_name'] ); } elseif ($infosImg['mime']=='image/png' ) { $img_big = imagecreatefrompng($_FILES['avatar']['tmp_name']); # On ouvre l'image d'origine $img_new = imagecreate($x, $y); # création de la miniature $img_mini = imagecreatetruecolor($x, $y) or $img_mini = imagecreate($x, $y); // copie de l'image, avec le redimensionnement. imagecopyresized($img_mini,$img_big,0,0,0,0,$x,$y,$infosImg[0],$infosImg[1]); imagepng($img_mini,$_FILES['avatar']['tmp_name'] ); } elseif ($infosImg['mime']=='image/gif' ) { $img_big = imagecreatefromgif($_FILES['avatar']['tmp_name']); # On ouvre l'image d'origine $img_new = imagecreate($x, $y); # création de la miniature $img_mini = imagecreatetruecolor($x, $y) or $img_mini = imagecreate($x, $y); // copie de l'image, avec le redimensionnement. imagecopyresized($img_mini,$img_big,0,0,0,0,$x,$y,$infosImg[0],$infosImg[1]); imagegif($img_mini,$_FILES['avatar']['tmp_name'] ); } { // Parcours du tableau d'erreurs if(isset($_FILES['avatar']['error']) && UPLOAD_ERR_OK === $_FILES['avatar']['error']) { // On renomme le fichier $nomImage = $username.'.'.$extension; // Si c'est OK, on teste l'upload if(move_uploaded_file($_FILES['avatar']['tmp_name'], TARGET.$nomImage)) { $requete=mysql_query('insert into 1_validavatar(id, url_avatar, username) values ('.$_SESSION['userid'].', "'.TARGET.$nomImage.'", "'.$username.'")');
A voir également:
- Problème d'upload d'avatar
- Avatar facebook - Guide
- Youtube upload - Télécharger - Diffusion
- Waptrick avatar - Télécharger - TV & Vidéo
- Avatar whatsapp gratuit - Accueil - WhatsApp
- Fourtoutici upload ✓ - Forum Réseaux sociaux