Merci pour le code, je m en suis inspiré, mais ça bug toujours encore un peu ^^.
Voila le code de upload de l avatar :
$oUser->_verifieModifUser();
echo $oUser->m_bMessage;
switch($idChoix)
[...]
case 5 :
echo '<p>Modification de l\'avatar (Formats supportés : JPG, GIF,PNG)</p>';
$inputAv = '<form enctype="multipart/form-data" method="post">';
$inputAv .= '<p><input type="hidden" name="MAX_FILE_SIZE" value="100000" />';
$inputAv .= 'Envoie de l\'image : <input name="modifAvatar" type="file" style="border:#999999 1px solid;" />';
$inputAv .= ' <input type="submit" name="btnModifier" value="Modifier" style="border:1px solid #999999;" /></p>';
$inputAv .= '</form>';
echo $inputAv;
break;
}
Je recupere le fichier ds la méthode _verifieModifUser() qui va permettre de modifier plusieurs donnés d'un utilisateur, l avatar dans le cas qui nous interesse.
[...] -> bout de code traitant d'autres choses
public function _verifieModifUser(){
if(isset($_POST['btnModifier']) && !empty($_POST['btnModifier'])){
[...]
if(empty($_FILES['modifAvatar']['name'])) $this->m_bMessage = '<p style="color:#ff0000">Veuillez choisir un avatar svp.</p>';
[...]
if(!empty($_FILES['modifAvatar']['name'])){
$avatar = 'images/avatar/'.basename($_FILES['modifAvatar']['name']);
//remplacement des caracteres speciaux
$avatar = strtr($avatar, 'ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðòóôõöùúûüýÿ', 'AAAAAACEEEEIIIIOOOOOUUUUYaaaaaaceeeeiiiioooooouuuuyy');
// remplacer les caracteres autres que lettres, chiffres et point par _
$avatar = preg_replace('/([^.a-z0-9]+)/i', '_', $avatar);
if (move_uploaded_file($_FILES['modifAvatar']['tmp_name'], $avatar)) {
$this->avatar = $this->verifTypeImage();
if($this->avatar){
$this->_modifAvatar($avatar); //Fonction qui ecrira l url de l avatar ds la table utilisateur
}
}else{
$this->m_bMessage = '<p style="color:#ff0000">L\'image n\'a pas été uploadée.</p>';
}
}//fin if empty avatar
}//fin if isset
}//fin methode
//Fonction qui va verifier si la vatar up est correct, sic est le cas, il créé l avatar
public function verifTypeImage($avatar){
//Hauteur et longueur max autorise
$width_auth = 100;
$height_auth = 100;
//Liste des types mime autorisés
$fmt = array("image/jpg","image/gif","image/png","image/jpeg");
//Verification de l image temporaire uploadé
$size = getimagesize($avatar);
//recuperation des infos de getimagesize
list($width,$height,$ext,$attr,$bits,$channels,$mime) = $size;
//si le mime ne se trouve pas ds le tableau des mime authorisé : on retourne faux
if(!in_array($mime,$fmt)){
echo $this->m_bMessage = '<p>Le format de ce fichier n\'est pas autorisé. Seuls les formats gif, png et jpg sont autorisés</p>';
$ac = false;
}else if($width >= $width_auth && $height >= $height_auth){
echo $this->m_bMessage = '<p>La taille du fichier dépasse la taille autorisé</p>';
$ac = false;
//On va verifier les dimmensions
}else if(in_array($mime,$fmt) && $width < $width_auth && $height < $height_auth){
switch($ext){
case 1: // GIF
$source = imagecreatefromgif($_FILES['modifAvatar']['tmp_name']); // L'image est la source
break;
case 2: //JPEG
$source = imagecreatefromjpeg($_FILES['modifAvatar']['tmp_name']); // L'image est la source
break;
case 3: // PNG
$source = imagecreatefrompng($_FILES['modifAvatar']['tmp_name']); // L'image est la source
break;
}//fin switch
echo $this->m_bMessage = '<p>L\'image '.$_FILES['modifAvatar']['name']. ' a été transférée avec succès</p>';
$av = true;
}
return $av;
}//fin fonction verification du type mime
J ai tenté de up un .gif et ensuite un .jpg :
Le format de ce fichier n'est pas autorisé. Seuls les formats gif, png et jpg sont autorisés
Le format de ce fichier n'est pas autorisé. Seuls les formats gif, png et jpg sont autorisés
voila ^^