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

Langage PHP Discussion :

[Upload] Upload d'images à partir d'un site


Sujet :

Langage PHP

  1. #1
    Futur Membre du Club
    Inscrit en
    Décembre 2006
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 11
    Points : 8
    Points
    8
    Par défaut [Upload] Upload d'images à partir d'un site
    Bonjour à tous,

    je souhaite uploader des images à partir de mon site.

    Avec un code simple, tout va bien, mais dès que je veux utiliser des

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     $img=imagecreatefromjpeg("imgtemp/$uniqid.img");
    Il me dit que la fonction imagecreatefromjpeg est indéfinie.

    Je suppose qu'il me manque la bibliothèque adéquate.

    si c'est ça, je voudrais savoir où/comment la mettre afin que ça fonctionne.

  2. #2
    Expert éminent Avatar de Mr N.
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5 418
    Points : 6 449
    Points
    6 449
    Par défaut
    Jette un oeil à cette page, c'est tout expliqué :
    http://php.net/gd

  3. #3
    Membre expérimenté Avatar de julien.63
    Profil pro
    balayeur
    Inscrit en
    Décembre 2005
    Messages
    1 348
    Détails du profil
    Informations personnelles :
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : balayeur

    Informations forums :
    Inscription : Décembre 2005
    Messages : 1 348
    Points : 1 311
    Points
    1 311
    Par défaut
    tu peux faire une
    pour savoir exactement ce que tu as d'installé.

  4. #4
    Futur Membre du Club
    Inscrit en
    Décembre 2006
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 11
    Points : 8
    Points
    8
    Par défaut
    Merci beaucoup, c'est bien ce que je cherchais.

    La fonction imagecreatefromjpeg() fonctionne bien, mais j'ai un probleme avec d'autres fonctions.

    Voici mon code :

    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
     
       if ( move_uploaded_file ( $_FILES['fichier']['tmp_name'],$dossier ) )
        {
            echo "coucou3";
            list($largeur,$hauteur,$type,$attribut)=getimagesize("imgtemp/$uniqid.img");
            $w_max="110"; // On définit une largeur max : 100
            $h_max="80"; // On définit une hauteur max : 150
            echo "info 0:".$largeur;
            // On définit un rapport de proportionalité
            $coef=max($largeur/$w_max,$hauteur/$h_max);
            $width=($largeur/$coef); // Nouvelle largeur
            $height=($hauteur/$coef); // Nouvelle hauteur
     
            // Si c'est une image GIF
            if ($type=="1")
            {
               $img=imagecreatefromgif("imgtemp/$uniqid.img");
            }
     
            // Si c'est une JPEG
            else if ($type=="2")
            {
               $img=imagecreatefromjpeg("imgtemp/$uniqid.img");
            }
     
            // Si c'est une PNG
            else if ($type=="3")
            {
               $img=imagecreatefrompng("imgtemp/$uniqid.img");
            }
            $miniature=imagecreate($width,$height);
            echo "img:".$img;
            //on copie l'impage dans ses dimensions d'origine
             copy("imgtemp/$uniqid.1.img","images/$uniqid.img");
     
            // On copie l'image dans les nouvelles dimensions
            imagecopyresized($miniature,$img,0,0,0,0,$width,$height,$info[0],$info[1]);
            echo "largeur de depart:".$largeur;
            echo "largeur a l arrivee:".$width;
            // On crée une image PNG (pas de perte de qualité, pas de problème avec le GIF)
            imagepng($miniature,"imgtemp/$uniqid.img");
     
            // Une fois l'image finie on l'enregistre dans le dossier image
            copy("imgtemp/$uniqid.2.img","images/$uniqid.img");
     
            // Et on supprimer le fichier temporaire
            unlink("imgtemp/$uniqid.img");
     
    }

    Et en messages d'erreurs j'ai:
    Warning: copy(imgtemp/30967458155da0f427.1.img) [function.copy]: failed to open stream: No such file or directory in C:\wamp\www\web_gerac\upload.php on line 56

    Warning: imagecopyresized() [function.imagecopyresized]: Invalid image dimensions in C:\wamp\www\web_gerac\upload.php on line 59


    Fatal error: imagepng() [<a href='function.imagepng'>function.imagepng</a>]: gd-png: fatal libpng error: Invalid number of colors in palette in C:\wamp\www\web_gerac\upload.php on line 63
    En gros, est ce que j'utilise correctement les fonctions copy(), imagecopyresized() et imagepng()?

  5. #5
    Futur Membre du Club
    Inscrit en
    Décembre 2006
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 11
    Points : 8
    Points
    8
    Par défaut
    En fait je viens de trouver mon erreur, j'avais changé des noms de variable et ne les avait pas mis a jour partout.

    Corrigé ça donne:

    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
     
    if ( move_uploaded_file ( $_FILES['fichier']['tmp_name'],$dossier ) )
        {
     
            list($largeur,$hauteur,$type,$attribut)=getimagesize("imgtemp/$uniqid.img");
            $w_max="110"; // On définit une largeur max : 100
            $h_max="80"; // On définit une hauteur max : 150
     
            // On définit un rapport de proportionalité
            $coef=max($largeur/$w_max,$hauteur/$h_max);
            $width=($largeur/$coef); // Nouvelle largeur
            $height=($hauteur/$coef); // Nouvelle hauteur
     
            // Si c'est une image GIF
            if ($type=="1")
            {
               $img=imagecreatefromgif("imgtemp/$uniqid.img");
            }
     
            // Si c'est une JPEG
            else if ($type=="2")
            {
               $img=imagecreatefromjpeg("imgtemp/$uniqid.img");
            }
     
            // Si c'est une PNG
            else if ($type=="3")
            {
               $img=imagecreatefrompng("imgtemp/$uniqid.img");
            }
            $miniature=imagecreate($width,$height);
     
            //on copie l'impage dans ses dimensions d'origine
             copy("imgtemp/$uniqid.img","images/$uniqid.grande.img");
     
            // On copie l'image dans les nouvelles dimensions
            imagecopyresized($miniature,$img,0,0,0,0,$width,$height,$largeur,$hauteur);
     
            // On crée une image PNG (pas de perte de qualité, pas de problème avec le GIF)
            imagepng($miniature,"imgtemp/$uniqid.img");
     
            // Une fois l'image finie on l'enregistre dans le dossier image
            copy("imgtemp/$uniqid.img","images/$uniqid.petite.img");
     
            // Et on supprimer le fichier temporaire
            unlink("imgtemp/$uniqid.img");
     
            $image = new Image ( 0 );
            $image->grande = $uniqid."grande.img";
            $image->petite = $uniqid."petite.img";
            $image->description = addslashes ( $desc );
            $verif = $image->Insertion( );
        }
    Les images se trouvent bien dans mon dossier, mais je n'arrive pas à ouvrir l'image apres l'avoir réduite.

    Est-ce normal? si oui, comment faire?

  6. #6
    Membre expérimenté Avatar de julien.63
    Profil pro
    balayeur
    Inscrit en
    Décembre 2005
    Messages
    1 348
    Détails du profil
    Informations personnelles :
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : balayeur

    Informations forums :
    Inscription : Décembre 2005
    Messages : 1 348
    Points : 1 311
    Points
    1 311
    Par défaut
    Citation Envoyé par lenarvor
    Les images se trouvent bien dans mon dossier, mais je n'arrive pas à ouvrir l'image apres l'avoir réduite.
    est ce que ça viendrait plutot du chemin qui est faux ou du navigateur qui n'arrive pas à lire l'image?
    est ce que tu as essayé de la récupérer via FTP et de l'ouvrir en local pour s'assurer que le fichier n'est pas corrompu?

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 0
    Dernier message: 16/04/2012, 18h43
  2. [Upload] Upload d'une image d'un site au mien
    Par valche5 dans le forum Langage
    Réponses: 2
    Dernier message: 24/06/2008, 15h25
  3. [Upload] upload d'une image
    Par emna_icn dans le forum Langage
    Réponses: 11
    Dernier message: 04/05/2006, 23h14
  4. [Upload] Upload d'une image
    Par Seth77 dans le forum Langage
    Réponses: 2
    Dernier message: 23/03/2006, 11h00
  5. [Upload] upload de fichier images
    Par omlip dans le forum Langage
    Réponses: 2
    Dernier message: 03/01/2006, 23h13

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