IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Bibliothèques et frameworks PHP Discussion :

[ImageMagick] Upload d'image et redimenssionnement


Sujet :

Bibliothèques et frameworks PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 22
    Par défaut [ImageMagick] Upload d'image et redimenssionnement
    Bonsoir,

    J’aurai voulu vous demander un petit service en PHP.

    Voila je n’arrive pas a faire un uploade d’image sur un serveur en redimensionnant l’image tout en gardant les proportions.

    Donc j'ai une image qui s’appelle belle montagne.jpg sur mon disque dur et bien je souhaiterai mettre cette image sur le serveur mais en plus je souhaiterai mettre une copie avec un redimensionnement et la nommer en imageOriginale1.jpg et celle qui est redimensionner porterai le nom de imageVignette1.jpg.

    De plus il faudrait que le script PHP vérifie que les fichiers n’existe pas et s’il existe il devrait rajouter 1 au chiffre des images ce qui nommerai les images de la façon suivante imageOriginal2.jpg et imageVignette2.jpg, et ainsi de suite imageOriginal3.jpg, imageVignette3.jpg …….

    J'arrive a uploader un fichier en gardant son nom d'origine c'est deja ca, avec le code ci-dessous:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    if(isset($_FILES['photo']))
    {
     
      $extensions_ok = array('jpg');
      $taille_max = 3000000;
      $dest_dossier = '../photos/';
      // vérifications
      if( !in_array( substr(strrchr($_FILES['photo']['name'], '.'), 1), $extensions_ok ) )
      {
        $erreur = 'Veuillez sélectionner un fichier de type jpg, chaque fichier doit faire moins de 3Mo et ne contenir aucun accents !';  
      }
      elseif( file_exists($_FILES['photo']['tmp_name']) 
              and filesize($_FILES['photo']['tmp_name']) > $taille_max)
      {
        $erreur = 'Votre fichier doit faire moins de 3Mo !';
      }
      // copie du fichier
      if(!isset($erreur))
      {
        $dest_fichier = basename($_FILES['photo']['name']);
        // formatage nom fichier
        // enlever les accents
        $dest_fichier = strtr($dest_fichier, 'ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðòóôõöùúûüýÿ', 'AAAAAACEEEEIIIIOOOOOUUUUYaaaaaaceeeeiiiioooooouuuuyy');
        // remplacer les caracteres autres que lettres, chiffres et point par _
        $dest_fichier = preg_replace('/([^.a-z0-1]+)/i', '_', $dest_fichier);
        // copie du fichier
        move_uploaded_file($_FILES['photo']['tmp_name'], $dest_dossier . $dest_fichier);
    	$erreure = 'transfère ok';
      }

    Je vous remercie par avance.

    Merci de me donner un peut de temps. Bye !

  2. #2
    Membre expérimenté
    Avatar de Julien.alkaza
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    239
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Octobre 2004
    Messages : 239
    Par défaut
    Salut,

    Pour garder le rapport L - h, tu dois d'abord déterminer la dimension maximale que tu veux obtenir après redim. ensuite, tu récupère les info de ton image d'origine, un petit calcul, et hop!!!

    Il y a un tuto sur ca....Comment faire une galerie...Je m'en suis inspiré pour faire un module de mon site.

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 22
    Par défaut
    Ok je vai parcourir les tutos plus en détail, pourtant j'ai fait une recherche sans trouver les réponses a mes questions merci.

  4. #4
    Membre confirmé Avatar de kodokan
    Profil pro
    Lycéen
    Inscrit en
    Avril 2006
    Messages
    127
    Détails du profil
    Informations personnelles :
    Âge : 33
    Localisation : France

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Avril 2006
    Messages : 127
    Par défaut
    Salut

    Fonction imagecopyresized() permet de garder le rapport ( voir l'exemple ):
    http://fr3.php.net/manual/fr/functio...opyresized.php

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 22
    Par défaut
    Coucou les ptits loups bon deja je vous souhaite de très bonnes fêtes de fin d'année.

    Je reviend sur mon probleme alors j'ai essayé d'adapter ce que kodokan ma suggéré c'est à dire l'utilisation de "imagecopyresized" et bien cela ne marche pas ou plutot je n'arrive pas a le mettre en place voici mon integration de cette methode de redimmentionnement d'image au sein de mon code d'upload:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    if(isset($_FILES['photo']))
    {
     
      $extensions_ok = array('jpg');
      $taille_max = 3000000;
      $dest_dossier = '../photos/';
      // vérifications
      if( !in_array( substr(strrchr($_FILES['photo']['name'], '.'), 1), $extensions_ok ) )
      {
        $erreur = 'Veuillez sélectionner un fichier de type jpg, chaque fichier doit faire moins de 3Mo et ne contenir aucun accents !';  
      }
      elseif( file_exists($_FILES['photo']['tmp_name']) 
              and filesize($_FILES['photo']['tmp_name']) > $taille_max)
      {
        $erreur = 'Votre fichier doit faire moins de 3Mo !';
      }
      // copie du fichier
      if(!isset($erreur))
      {
        $dest_fichier = basename($_FILES['photo']['name']);
        // formatage nom fichier
        // enlever les accents
        $dest_fichier = strtr($dest_fichier, 'ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðòóôõöùúûüýÿ', 'AAAAAACEEEEIIIIOOOOOUUUUYaaaaaaceeeeiiiioooooouuuuyy');
        // remplacer les caracteres autres que lettres, chiffres et point par _
        $dest_fichier = preg_replace('/([^.a-z0-1]+)/i', '_', $dest_fichier);
    	//
    	//--code de redimmentionnement de l'image/////////////////////////////////////////////////
    	//
    	// Fichier et nouvelle taille
    	$filename = $dest_fichier;
    	$percent = 0.5;
     
    	// Content type
    	header('Content-type: image/jpeg');
     
    	// Calcul des nouvelles dimensions
    	list($width, $height) = getimagesize($filename);
    	$newwidth = $width * $percent;
    	$newheight = $height * $percent;
     
    	// chargement
    	$thumb = imagecreatetruecolor($newwidth, $newheight);
    	$source = imagecreatefromjpeg($filename);
     
    	// Redimensionnement
    	imagecopyresized($thumb, $source, 0, 0, 0, 0, $newwidth, $newheight, $width, $height);
     
    	// Affichage
    	//imagejpeg($thumb);
    	//--fin code de redimmentionnement de l'image fin/////////////////////////////////////////////
    	//
        // copie du fichier
        move_uploaded_file($_FILES['photo']['tmp_name'], $dest_dossier . $thumb );
    	$erreure = 'transfère ok';
     
     
      }
    }
    Le code pour le redimmentionnement que j'ai ajoute au code précedent ce trouve entre ces deux commentaire:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    //--code de redimmentionnement de l'image/////////////////////////////////////////////////
    et

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    //--fin code de redimmentionnement de l'image fin/////////////////////////////////////////////
    J'ai plein de warning qui s'affichede la façon suivante:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    br />
    <b>Warning</b>:  getimagesize(nuage_monde.jpg): failed to open stream: No such file or directory in <b>e:\logiciels\easyphp1-8\www\essai_site_mysql\mes_creations\flash\botafogo site\admin\upphotos.php</b> on line <b>53</b><br />
    <br />
    <b>Warning</b>:  imagecreatetruecolor(): Invalid image dimensions in <b>e:\logiciels\easyphp1-8\www\essai_site_mysql\mes_creations\flash\botafogo site\admin\upphotos.php</b> on line <b>58</b><br />
    <br />
    <b>Warning</b>:  imagecreatefromjpeg(nuage_monde.jpg): failed to open stream: No such file or directory in <b>e:\logiciels\easyphp1-8\www\essai_site_mysql\mes_creations\flash\botafogo site\admin\upphotos.php</b> on line <b>59</b><br />
    <br />
    <b>Warning</b>:  imagecopyresized(): supplied argument is not a valid Image resource in <b>e:\logiciels\easyphp1-8\www\essai_site_mysql\mes_creations\flash\botafogo site\admin\upphotos.php</b> on line <b>62</b><br />
    <br />
    <b>Warning</b>:  move_uploaded_file(../photos/): failed to open stream: Permission denied in <b>e:\logiciels\easyphp1-8\www\essai_site_mysql\mes_creations\flash\botafogo site\admin\upphotos.php</b> on line <b>69</b><br />
    <br />
    <b>Warning</b>:  move_uploaded_file(): Unable to move 'E:/logiciels/EasyPHP1-8\tmp\php293.tmp' to '../photos/' in <b>e:\logiciels\easyphp1-8\www\essai_site_mysql\mes_creations\flash\botafogo site\admin\upphotos.php</b> on line <b>69</b><br />
    <html>.....
    Pouvez vous m'aidez a comprendre mon erreure ? En faite je debute en php je connais deja un language de programmation "action script" et "java script".
    Mais la le php j'ai besoin d'aide Merci.

Discussions similaires

  1. [ImageMagick] Redimensionner une image à l'upload
    Par dembroski dans le forum Bibliothèques et frameworks
    Réponses: 1
    Dernier message: 14/07/2007, 16h23
  2. [Debutant] [JSP/Servlet] Upload d'image vers le serveur
    Par ShinJava dans le forum Servlets/JSP
    Réponses: 6
    Dernier message: 05/07/2005, 17h42
  3. [ImageMagick] Générer une image à partir de plusieurs images ?
    Par fichtre! dans le forum Bibliothèques et frameworks
    Réponses: 8
    Dernier message: 16/02/2005, 15h32
  4. [ImageMagick] Tronquer une image
    Par tomtoad dans le forum Bibliothèques et frameworks
    Réponses: 7
    Dernier message: 08/01/2005, 21h12
  5. Upload d'images sur le forum
    Par KibitO dans le forum Mode d'emploi & aide aux nouveaux
    Réponses: 2
    Dernier message: 09/10/2004, 23h18

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo