1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96
|
function uploadAvatar($src_img, $nom_img)
{
$size_img = getimagesize($src_img);
// on assigne la largeur de l'image a $w_img
$w_img = $size_img[0];
// on assigne la hauteur de l'image a $h_img
$h_img = $size_img[1];
// on reprend l'extension de l'image
$ext = strtolower($size_img[2]);
// Array d'erreurs
$errorArray = array(
'imgNotJpeg' => false,
'imgSelectError' => false,
'imgToBig' => false,
'imgPartial' => false,
'fileNotSpecified' => false
);
// on test si c'est une image JPEG
if($ext == '2')
{
// si l'extension est jpg on ne fait rien
}
else
{
// sinon on arrête de charger l'application et on met une erreur
return 'error bla bla bla';
}
// on assigne une valeur au chemin ou le fichier sera stocké sur le serveur
$nom_img = testAvatarName($nom_img);
// on upload le fichier
move_uploaded_file($src_img,AVATAR_FOLDER.$nom_img);
// test lors des erreur lors de l'upload
if($error == UPLOAD_ERR_INI_SIZE)
{
return 'error bla bla bla';
}
elseif($error == UPLOAD_ERR_FORM_SIZE)
{
return 'error bla bla bla';
}
elseif($error == UPLOAD_ERR_PARTIAL)
{
return 'error bla bla bla';
}
elseif($error == UPLOAD_ERR_NO_FILE)
{
return 'error bla bla bla';
}
// resize et upload
resize(AVATAR_MAX_SIZE,$src_img,AVATAR_FOLDER,AVATAR_FOLDER.$nom_img,$nom_img,$w_img,$h_img);
// insertion des info sur l'image dans la base de données
// requête MySQL ...
}
function testAvatarName($nomImg)
{
while(file_exists(AVATAR_FOLDER.$nomImg))
{
$nomImg = "img".rand().".jpg";
}
return $nomImg;
}
function resize($taille_maximum,$source_img,$dest,$src_srv,$name,$w,$h)
{ // début de la fonction resize
// on test la taille de l'image
if($w <= $taille_maximum && $h <= $taille_maximum)
{
// si le fichier a déjà la bonne dimension ou est plus petit que la taille max on fait une simple copie
copy($src_srv,$dest.$name);
}
else
{
// défini le type de l'image
//header ("Content-type: image/jpeg");
// crée une image par rapport à l'image de base
$source = imagecreatefromjpeg($src_srv);
// si l'image est plus large que haute
if($w >$h){
// on crée une image vide avec les dimensions de l'image de destination
$destination = imagecreatetruecolor($taille_maximum,($taille_maximum/(imagesx($source))*imagesy($source)));
}else{
// on crée une image vide avec les dimensions de l'image de destination mais dans l'autre sens (plus haute que large)
$destination = imagecreatetruecolor(($taille_maximum/((imagesy($source)))*imagesx($source)), $taille_maximum);
}
// redimesionne l'image par rapport à la nouvelle image
imagecopyresized($destination, $source, 0, 0, 0, 0, imagesx($destination), imagesy($destination), imagesx($source), imagesy($source));
// copie la nouvelle image dans le dossier normal
imagejpeg($destination,$dest.$name);
}
} |
Partager