Upload et taille d'images

Résolu
sitadom39 Messages postés 8 Statut Membre -  
sitadom39 Messages postés 8 Statut Membre -
Bonjour,
Pour la partie "petites annonces pour fauchés", je mets en place un formulaire pour afficher les informations de l'annonce.
Une ima est uploadée, je voudrai que sa taille soit "diminé" à 200 px de largeur maxi sans passer par
style="width:200px"

Existe-t-il une commande php pour çà ?
merci d'ance
Dominiqueav

5 réponses

  1. hamzafes Messages postés 258 Statut Membre 54
     
    Salam,

    c'est possible en redimensionnant l'image après l'upload. regardes le code sur la page:
    http://www.petitcode.com/php-redimensionner-une-image-53

    Hamza
    0
  2. sitadom39 Messages postés 8 Statut Membre
     
    Merci,
    dans le tuto il faut déclarer la variable :
    $file_src : Le chemin de l'image source (), l'image qui va être redimensionnée .
    j'uploade mes images avec ce code
     
    if 
         (   move_uploaded_file($_FILES['foto'] ['tmp_name'],"annonce/{$_FILES['foto'] ['name']}")  
                                        )
    dans un répertoire d'annonce.
    mon form est le suivant
     <div id="facultatif">     
                      <legend style="color:white;font-size:20px;font-family:Champ;padding:10px;background-color:black;width:150px">Pour illustrer votre annonce</legend>
                       <p>vous pouvez ajouter une photo<br />
                       
                       <label for="legende">légende de votre photo :</label> : <input type="legende" name="legende" id="legende"size="30" tabindex="55" /></input>
                       <input type="hidden" name="MAX_FILE_SIZE" value="10485760" />
                       <label for="foto">Format du fichier (JPG, JPEG, PNG ou GIF<span class="bulle"> | max. 100 Ko) :<span>format d'une photo miniature</span></span></label><br />
                       Sélectionnez votre fichier: <input style="color:#8d4c00" size="30" type="file" name="foto">
                      
                        </div>    

    Comment dois je définir la variable $file_src ?
    merci par avance
    0
  3. hamzafes Messages postés 258 Statut Membre 54
     
    Salam,

    désolé, je n'etais pas dispo c'est derniers jours.
    le $file_src c'est ça "annonce/{$_FILES['foto'] ['name']}"
    mais il faut biensur remplacer ce qui est entre {} par ça valeur.

    le redimensionnement doit se faire juste après l'execution de la fonction move_uploaded_file

    Hamza
    0
    1. sitadom39 Messages postés 8 Statut Membre
       
      moi aussi j'ai dû partir en vacances, quelle idée !
      j'en suis à avoir réussi à renommer le fichier uploadé et testé les extensions. pour l'upload, çà devient :
        $randString = md5(time()); //encode the timestamp - returns a 32 chars long string  *
                                      $fileName = ($_FILES['foto']['name']); //the original file name  
                                      $splitName = explode('.', $fileName); //split the file name by the dot  
                                      $fileExt = end($splitName); //get the file extension  
                                      $newFileName  = strtolower($randString.'.'.$fileExt); //join file name and ext...
                                      move_uploaded_file($_FILES['foto'] ['tmp_name'],"annonce/{$newFileName}");  echo "Le fichier vient d\être transféré avec succès";
                                       include ("resizer.php") ;    

      et ensuite dans le resizer.php en include (la source que tu m'as indiquée) :mes variables sont indiquées comme çà
      $file_src = "annonce/{$_FILES['newFileName']}";
             $file_dest = "annonce/{$_FILES['newFileName']}";
              $new_width = 250 ;
              $new_height = 175 ;
              $proportional = true;

      mais pas de changement de tailles (j'ai testé un jpeg de 386 par 500)
      où c'est y que çà coince?
      merci
      0
    2. hamzafes Messages postés 258 Statut Membre 54
       
      Salam,

      1- C'est plutot :

      $file_src= "annonce/{$newFileName}";
      $file_dest="annonce/{$newFileName}";
      


      2- Vérifiez les droits du dossier "annonce" qui doivent être 777
      3- Affichez $file_src pour être sûr que c'est le bon chemin et nom de fichier.
      4- Essayez un $file_dest différent de $file_src et voir ce que ça donne

      Hamza
      0
    3. sitadom39 Messages postés 8 Statut Membre
       
      Bonjour,
      j'ai créé un dossier resize en 777, le dossier annonce est lui aussi en 777
      je sépare les deux $file comme çà :
       
             $file_src= "annonce/{$newFileName}";
             $file_dest="resize/{$newFileName}";
              $new_width = 250 ;
              $new_height = 175 ;
              $proportional = true;
              echo  $file_src;
              echo $file_dest;

      çà affiche bien les deux noms mais l'enregistrement ne se fait que pour $file_src dans le dossier "annonce avec la taille d'origine
      ma page :
      http://www.sitadom39.fr/ajoutannonce.php
      est ce que je dois changer de méthode d'upload.
      Merci
      Dominique
      0
    4. sitadom39 Messages postés 8 Statut Membre
       
      en attendant mieux je colle un width arbitraire
       <td rowspan="8"><img width="150" src="annonce/'.$ligne->img_nom.'" alt="'.$ligne->legende.'" title="'.$ligne->legende.'"/><br /></td>      

      pour pouvoir démarrer
      merci
      0
  4. hamzafes Messages postés 258 Statut Membre 54
     
    essayez avec des chemins absolus, il se peut que le script ne trouve pas les dossiers.
    0
    1. sitadom39 Messages postés 8 Statut Membre
       
      Désolé de ne pavoir précisé, mais le upload du
      $file_src= "annonce/{$newFileName}";

      fonctionne.et le fichier est bien enregistré (dans le dossier et dans la base

      C'est l'image
       $file_dest="resize/{$newFileName}";

      qui n'est pas enregistrée (777 ok pour le dossier resize)
      merci
      0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. hamzafes Messages postés 258 Statut Membre 54
     
    Téléchargez l'exemple ci-dessous :
    http://www.petitcode.com/up/codes/53-php-resize-image-exemple.rar

    ça montre comment on appel la fonction.
    0
    1. sitadom39 Messages postés 8 Statut Membre
       
      Super et merci,
      Bonne semaine
      Dominique
      0