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
|
// Dans notre contexte nous devons récupérer 4 images pour l'upload
if(isset($_FILES['photo']) && ($size =count($_FILES["photo"]["name"])) <=MAX_FILE){
// boucle for pour parcourir l'ensemble des fichiers qui seront uploadés, $i correspond à chacun des fichiers traités
for($i=0; $i <$size; $i++) {
if($_FILES["photo"]["error"][$i] ===UPLOAD_ERR_OK && $_FILES["photo"]["size"][$i] <=MAX_FILE_SIZE){
$photo_tmp = $_FILES['photo']['tmp_name'][$i];
$photo_name = $_FILES['photo']['name'][$i];
$photo_ext = explode('.',$photo_name); // explode() retourne un TABLEAU de chaînes
$img = end($photo_ext); // pour récupérer l'extension du fichier uploadé
// on place les extensions dans un tableau pour pouvoir récupérer toutes les valeurs en dehors de la boucle
$allow_ext = array("jpg", "jpeg", "png", "gif");
if(!file_exists($dossier)) { // si le dossier n'existe pas encore alors ...
// on crée le dossier où seront stockées les photos
mkdir($dossier, 0777, true);
}
if(in_array(strtolower($img), $allow_ext)) { // si l'extension du fichier uploadée est dans le tableau alors ...
$image_size = getimagesize($photo_tmp); // getimagesize() renvoi un tableau cf. php.net
print '<pre>';
print_r($image_size); // mime=>image/jpeg
print '</pre>';
// partie traitant le redimensionnement des images
if($image_size['mime'] == 'image/jpeg') {
$image_src = imagecreatefromjpeg($photo_tmp);
} else if($image_size['mime'] == 'image/gif') {
$image_src = imagecreatefromgif($photo_tmp);
} else if($image_size['mime'] == 'image/png') {
$image_src = imagecreatefrompng($photo_tmp);
} else {
echo "Le format de votre image n'est pas valide !";
$image_src = false;
}
if($image_src !== false) { // si le format de l'image est valide
$image_width = 300; // taille souhaitée des images
// si la taille de la photo est supérieure à la taille souhaitée alors on redimensionne la hauteur et la largeur de l'image
if($image_width <= $image_size[0]) {
$new_width[0] = $image_width; // nouvelle largeur
$new_height[1] = round(($image_size[1]/$image_size[0])*$image_width,0); // on effectue un ratio de l'image
$image_finale = imagecreatetruecolor($new_width[0],$new_height[1]) or die ("Erreur");
imagecopyresampled($image_finale, $image_src,0,0,0,0,$new_width[0],$new_height[1],$image_size[0],$image_size[1]);
imagedestroy($image_src); // on supprime l'image source car elle ne nous est pas utile
} else { // sinon on conserve l'image
$image_size = $image_src;
} // fin if() ... else
$photo_resize = imagejpeg($image_finale,$dossier ."photo1.jpg", 100); // Affichage de l'image dans un fichier
$photo_resize = time();
} // fin if($image_src !== false)
// puis on déplace sur le serveur les fichiers uploadés
move_uploaded_file($photo_tmp, $dossier .$photo_name);
} else {
$error = on_error($i, $photo_name);
echo "Le fichier n'est pas une image !";
} // fin if(in_array(strtolower($img), $allow_ext)) ... else
} else {
$error = on_error($i, $photo_name);
} // fin if($_FILES["photo"]["error"][$i] ===UPLOAD_ERR_OK && $_FILES["photo"]["size"][$i] <=MAX_FILE_SIZE) ... else
} // fin boucle for()
if(!$error){ // $error passe à true donc les fichiers sont uploadés
echo "Votre annonce est enregistrée et en attente de validation !";
//header( "refresh:3;url=http://localhost/clothesBusiness/index.php" );
}
$error =false; |
Partager