La Communauté Webmaster  forum rss


  Forum-webmaster
  Technique - programmation
  PHP / MySQL
(Modérateurs: Shain, Jey, erwinol, Lilian, lauryv, ToToMaStEr)
  [Résolu] Problème de redimensionnement d'image (libraire GD)
« Précédent Suivant »
Pages: [1] Descendre
Répondre    Aviser des réponses    Envoyer le sujet    Imprimer
  Auteur  Sujet: [Résolu] Problème de redimensionnement d'image (libraire GD)  (Lu 967 fois)
[Résolu] Problème de redimensionnement d'image (libraire GD)
« sur: le 28-03-2009 a 21:27:30 »
28ToM47
Membre récent
*

Hors-Ligne

Messages: 2



Je suis un lama!

Voir le Profil    E-Mail
Répondre avec citation

Bonjour à tous !

Je veux mettre en place sur mon portfolio un formulaire me permettant d'ajouter directement mes images sur mon site.
le principe dus cript :
-> on upload une image
-> on crèe 2 miniatures
-> on redimensionne l'image principale si sa hauteur dépasse 800 pixels

Il n'y a pas d'erreurs pendant le fonctionnement, le fichier principal est uploadé correctement, cependant les miniatures ne sont pas créée, mais si je regarde sur mon ftp, un fichier "mini_" et un fichier "_miniatures" sans extensions seront créés.
le script me dit même que tous les fichiers ont été uploadés.

voici mon script

Code:
<?php
define('MAX_SIZE', 10000000);
define('WIDTH_MAX', 10000);
define('HEIGHT_MAX', 10000);

// Paramètre -> image_create_thumb($filename, $width, $height, $filename_destination)
// $filename -> adresse de l'image
// $width -> largeur de la miniature voulu
// $height -> grandeur de la miniature voulu
// $filename_destination -> destination de l'image

function image_create_thumb($filename, $width, $height, $filename_destination)
{
        list($image["Width"], $image["Height"], $image["Type"]) = getimagesize($filename);

        if($image["Type"] == IMG_JPG || $image["Type"] == IMG_JPEG)
        {
                $im_image = ImageCreateFromJPEG($filename);
        }
        if($image["Type"] == IMG_GIF)
        {
                $im_image = ImageCreateFromGIF($filename);
        }
        if($image["Type"] == IMG_PNG)
        {
                $im_image = ImageCreateFromPNG($filename);
        }

        if($image["Width"] > $image["Height"])
        {
                $scale = $width / $image["Width"];
                $thumb_width = $width;
                $thumb_height  = floor($image["Height"]*$scale);
        }
        else
        {
                $scale = $height / $image["Height"];
                $thumb_height = $height;
                $thumb_width  = floor($image["Width"]*$scale);
        }

        $im_thumb = @ImageCreateTrueColor($thumb_width, $thumb_height) or die("Impossible de généré l'image à partir du module GD de PHP");

        ImageCopyResampled($im_thumb,$im_image,0,0,0,0,$thumb_width,$thumb_height,$image["Width"],$image["Height"]);

        ImageDestroy($im_image);
      
      if($image["Type"] == IMG_JPG || $image["Type"] == IMG_JPEG)
        {
                ImageJPEG($im_thumb, $filename_destination, 100);
        }
        if($image["Type"] == IMG_GIF)
        {
                ImageGIF($im_thumb, $filename_destination);
        }
        if($image["Type"] == IMG_PNG)
        {
                ImagePNG($im_thumb, $filename_destination);
        }
       
        ImageDestroy($im_thumb);

        return true;
}
   // pour transmettre les informations à la page d'après
   $message = "";


//on verifie si le formulaire est rempli
if(!empty($_POST))
{

//on vérifies que le champ est bien rempli:
if(!empty($_FILES["fichier"]["name"]))
{
   //nom du fichier choisi:
   $nomFichier    = $_FILES["fichier"]["name"] ;
   //nom temporaire sur le serveur:
   $nomTemporaire = $_FILES["fichier"]["tmp_name"] ;
   //type du fichier choisi:
   $typeFichier  = $_FILES["fichier"]["type"] ;
   //poids en octets du fichier choisit:
   $poidsFichier  = $_FILES["fichier"]["size"] ;
   //code de l'erreur si jamais il y en a une:
   $codeErreur    = $_FILES["fichier"]["error"] ;
   // On recupere les dimensions du fichier
   $infosImg = getimagesize($_FILES['fichier']['tmp_name']);

   
   //chemin qui mène au dossier qui va contenir les fichiers uplaod:
   $chemin = "images/travaux/" ;

   if(move_uploaded_file($nomTemporaire, $chemin.$nomFichier)){
      $message = $message."<br>l'upload sur le serveur a réussi";
         // calcul des nouvelles dimensions d'images
         $y = 226; // image du slider
         $x = ($infosImg[0] * $y) / $infosImg[1];

         $y2 = HEIGHT_MAX; // image taille normale
         $x2 = ($infosImg[0] * $y2) / $infosImg[1];

         $x3 = 45; // miniature
         $y3 = ($infosImg[1] * $x3) / $infosImg[0];
         

         //création de la miniature du slider
         $nom_mini = $chemin."mini_".$nomfichier;
         if (image_create_thumb($chemin.$nomFichier,$x,$y,$nom_mini))
            {$message = $message."<br /> Miniature du slider crée (".$x."x".$y." px.";}
            else{$message = $message."<br /> Impossible de créer la miniature slider";}
         //création de la petite miniature
         $nom_miniature = $chemin."miniature_".$nomfichier;
         if (image_create_thumb($chemin.$nomFichier,$x3,$y3,$nom_miniature))
            {$message = $message."<br /> Petite miniature crée (".$x3."x".$y3." px.";}
            else{ $message = $message."<br /> Impossible de créer la petite miniature";}
         //si la hauteur est supérieure à la hauteur max autorisée, on redimensionne
         $nom_normal = $chemin.$nomFichier;
         if ($infosImg[1] > HEIGHT_MAX){
            if (image_create_thumb($chemin.$nomFichier,$x2,$y2,$nom_normal))
            {$message = $message."<br /> image redimensionnée de ".$infosImg[0]."x".$infosImg[1]." à ".$x2."x".$y2.".";}
            else{$message = $message."<br />Impossible de redimensionner l'image uploadée sur le serveur";               
            }
         }            
         // connexion et enregistrement des données sur la BDD
         $post_titre = $_POST['titre'];
         $post_categorie = $_POST['categorie'];
         $post_image = $nomFichier;
         $post_description = $_POST['description'];
         $post_client = $_POST['client'];
         $post_type = $_POST['type'];
         $db = mysql_connect($dbhost, $dbuser, $dbpass) or die(mysql_error());
         if (!$db)
           {
             die('Could not connect: ' . mysql_error());
            }
         mysql_select_db($dbname,$db);
         $req = "INSERT INTO infos_images (titre , cat , image , description , client , type) VALUES ('$post_titre','$post_categorie','$post_image','$post_description','$post_client','$post_type')";
         if (!mysql_query($req,$db))
           {
              die('Error: ' . mysql_error());
           }else{$message = $message."<br />données inscrites dans la BDD"; }
                  
         mysql_close();
         
      }
   else{
      $message = $message."<br>l'upload a échoué";}
}//fin if
else
{
   $message = $message."Vous n'avez pas choisit de fichier!!<br>";
   $message = $message."<a href=\"./choix_fichier.html\">Retour</a>" ;
}//fin else


}

?>



Merci d'avance !

« Dernière Édition: le 04-04-2009 a 20:52:56 par ToToMaStEr » Rapporter au modérateur  

Re:problème de redimensionnement d'image (libraire GD)
« Répondre #1 sur: le 29-03-2009 a 00:44:00 »
Krash
P'tit nouveau
**

Hors-Ligne

Sexe: Male
Messages: 181





Voir le Profil    E-Mail
Répondre avec citation

Bonsoir,

tu as mis ceci

Citation:
$nom_mini = $chemin."mini_".$nomfichier;

Alors que plus haut tu déclares la variable

Citation:
$nomFichier    = $_FILES["fichier"]["name"] ;

Il faut soit mettre la majuscule soit tout en minuscule.



pareil pour

Citation:
$nom_miniature = $chemin."miniature_".$nomfichier;

« Dernière Édition: le 29-03-2009 a 00:45:32 par Krash » Rapporter au modérateur  
Re:problème de redimensionnement d'image (libraire GD)
« Répondre #2 sur: le 29-03-2009 a 03:16:41 »
28ToM47
Membre récent
*

Hors-Ligne

Messages: 2



Je suis un lama!

Voir le Profil    E-Mail
Répondre avec citation

Merci beaucoup !

Je sais pas comment j'ai pu faire cette si petite et si bête erreur. En tout cas, joli coup d'oeil, et encore merci :p

Rapporter au modérateur  
Re:problème de redimensionnement d'image (libraire GD)
« Répondre #3 sur: le 04-04-2009 a 20:52:27 »
ToToMaStEr
Modérateur Global
*****

Hors-Ligne

Sexe: Male
Messages: 238



....

Voir le Profil    WWW    E-Mail
Répondre avec citation

Félicitation pour ton code, il est agréable de lire des codes commentés et indentés!!

Rapporter au modérateur  

Vous ne pourrez pas me batre à ce jeu:labrute || Formation aux premiers secours CRF
Répondre    Aviser des réponses    Envoyer le sujet    Imprimer
Pages: [1] Monter
« Précédent Suivant »
Sauter à: 

Votre statut : Invité
Vous devez être membre pour participer.
 
 
Let’s Encrypt : le certificat SSL gratuit
Tester votre site internet sur différents navigateurs
[WordPress] Des problèmes avec l’administration ?
Rappel : Mettez à jour vos CMS et vos sites E-commerce
Le .fr fête ses 25 années d’existence !
Mesurer votre audience en temps réel avec BubbleStat
Porter réclamation contre Google Panda ?
Zlio n’est plus …
 
 
 
 
 

Copyright (c) Devclic 2002 - 2026 - Tous droits réservés

creation site internet strasbourg