function traiterImage( $post, $file ) { $extension_autorise = array("image/jpeg", "image/pjpeg", "image/bmp", "image/gif", "image/png"); $chemin = "../../images/produit"; // Le type de fichier est bien une image if (in_array($file["type"], $extension_autorise)) { $name = $file["name"]; $ext = substr($name, strrpos($name, ".") + 1); $nom_fichier = basename($name, "." . $ext); //$nom_fichier = $file["name"]; // Pour éviter d'écraser l'ancien en cas de doublon $n = ""; while(file_exists($chemin . "/" . $nom_fichier . $n . "." . $ext)) $n++; $nom_fichier = $nom_fichier . $n . "." . $ext; //echo "nom fichier : " . $nom_fichier . "<br>"; //echo "Lieu : " . $chemin . "/" . $nom_fichier . "<br>"; $resultat = move_uploaded_file($file["tmp_name"], $chemin . "/" . $nom_fichier); if ($resultat == true) { // ----- Dimensions de l'image ----- // // Changement du répertoire de destination $rep_destination = $chemin . "/"; $largeur_maxi = 800; $hauteur_maxi = 600; //echo $rep_destination . $nom_fichier . "<br>"; $fichier_a_retailler = $rep_destination . $nom_fichier; $size = GetImageSize($fichier_a_retailler); $largeur = $size[0]; $hauteur = $size[1]; //echo "0 largeur : " . $largeur . "<br>"; //echo "0 hauteur : " . $hauteur . "<br>"; $fichier_a_retailler = $rep_destination . $nom_fichier; // Redimensionnement de l'image ET création d'une vignette if ( $erreur == 0 && ($largeur > $largeur_maxi)) { //echo "fichier a retailler : " . $fichier_a_retailler . "<br>"; $i = new ImageManipulator($fichier_a_retailler); $nouvelle_largeur = $largeur_maxi; $nouvelle_hauteur = ($nouvelle_largeur * $hauteur) / $largeur ; // hauteur proportionnelle $i->resample($largeur_maxi, $nouvelle_hauteur); $filename = $rep_destination . $nom_fichier; //echo "--> " . $filename . "<br>"; $i->save_jpeg($filename); $i->end(); //$autre_chemin = "../../cartfile/im/produit"; //copy($rep_destination . $nom_fichier, $autre_chemin . "/" . $nom_fichier); $size = GetImageSize($filename); //echo "TEST sur " . $filename . "<br>"; $largeur = $size[0]; $hauteur = $size[1]; if ($hauteur > $hauteur_maxi) { //echo " Il faut retailler !!!<br>"; $fichier_a_retailler = $filename; } //echo "1 largeur : " . $largeur . "<br>"; //echo "1 hauteur : " . $hauteur . "<br>"; } // Redimensionnement de l'image ET création d'une vignette if ( $erreur == 0 && ($hauteur > $hauteur_maxi)) { //echo "fichier a retailler : " . $fichier_a_retailler . "<br>"; $i = new ImageManipulator($fichier_a_retailler); $nouvelle_hauteur = $hauteur_maxi; $nouvelle_largeur = round(($nouvelle_hauteur * $largeur) / $hauteur) ; $i->resample($nouvelle_largeur, $nouvelle_hauteur); $filename2 = $rep_destination . $nom_fichier; //echo "--> " . $filename . "<br>"; $i->save_jpeg($filename2); $i->end(); //$autre_chemin = "../../cartfile/im/produit"; //copy($rep_destination . $nom_fichier, $autre_chemin . "/" . $nom_fichier); $size = GetImageSize($filename2); //echo "TEST sur " . $filename . "<br>"; $largeur = $size[0]; $hauteur = $size[1]; //echo "2 largeur : " . $largeur . "<br>"; //echo "2 hauteur : " . $hauteur . "<br>"; } // On retourne le nom du fichier return $nom_fichier; } else { $GLOBALS["erreur"] = "Impossible de copier le fichier : " . $resultat; return false; } } else { $GLOBALS["erreur"] = "Le type du fichier choisi est incorrect."; return false; } }