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 d'image qui ne marche que parfois [Débutant(e)]


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Lycéen
    Inscrit en
    Octobre 2011
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Octobre 2011
    Messages : 14
    Par défaut Upload d'image qui ne marche que parfois
    Salut

    J'ai enfin réussi à trouver un upload d'image qui marche, mais j'ai une dernière erreur lors de l'upload d'un JPG.

    Ce qui est bizarre, c'est que cette erreur arrive sur certains JPG (comme les photos prises avec mon telephone) et pas avec d'autes (captures d'écran).

    Fatal error: Function name must be a string in /home/a7805396/public_html/fxphoto.php on line 20
    Pourtant pour d'autres JPG, la photo s'upload et se redimensionne parfaitement...

    Pour un autre JPG, il n'y a aucune erreur de code, la BDD s'update mais la photo ne s'upload pas...

    Voici mon code (celui de fxphoto.php, un include des fonctions) :

    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
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    <?php
        function creerImageDepuis($source) {
            $imageCreateFrom = array(
                "jpg" => "imagecreatefromjpeg",
                "png" => "imagecreatefrompng"
            );
     
            // Récupération de l'extention du fichier
            $extention = pathinfo($source, PATHINFO_EXTENSION);
            $extention = strtolower($extention);
            $extention = ($extention == "jpeg") ? "jpg" : $extention;
     
            $function = $imageCreateFrom[$extention];
            $image_source = $function($source);
     
            // Sauvegarde de la transparence de l'image
            imagealphablending($image_source, false);
            imagesavealpha($image_source, true);
     
            return $image_source;
        }
     
        function creerImage($image, $destination, $quality = 100) {
            $imageCreate = array(
                "jpg" => "imagejpeg",
                "png" => "imagepng"
            );
     
            // Récupération de l'extention du fichier
            $extention = pathinfo($destination, PATHINFO_EXTENSION);
            $extention = strtolower($extention);
     
            $function = $imageCreate[$extention];
     
            if ($extention == "jpg") {
                $function($image, $destination, $quality);
            } else {
                $function($image, $destination);
            }
     
            imagedestroy($image);
        }
     
        function redimensionneImage($source, $destination, $width, $height,
            $quality = 100){
            $image_source = creerImageDepuis($source);
     
            $size = getimagesize($source);
     
            if ($width == -1 || $height == -1) { // Si valeur automatique
                // On remplace le -1 par la valeur calculée
                $height = ($width != -1 && $height == -1) ?
                    (($size[1] * $width) / $size[0]) : $height;
                $width = ($width == -1 && $height != -1) ?
                    (($size[0] * $height) / $size[1]) : $width;
            } else if ($size[0] < $size[1]) { // Si portrait
                $tmp = $height;
                $height = $width;
                $width = $tmp;
            }
     
            $image_redim = @imagecreatetruecolor($width, $height);
            imagealphablending($image_redim, false);
            imagesavealpha($image_redim, true);
     
            imagecopyresampled ($image_redim, $image_source, 0, 0, 0, 0,
                $width, $height, $size[0], $size[1]);
     
            imagedestroy($image_source);
     
            creerImage($image_redim, $destination);
        }
    ?>
    Comment régler ça ?

    Merci d'avance

    Fiskal

  2. #2
    Membre éclairé

    Profil pro
    Inscrit en
    Février 2005
    Messages
    317
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 317
    Par défaut
    est-tu sur de ton extension d'image ? Si elle n'est pas bonne ta fonction sera vide...
    Fait un var_dump de tes différentes variables et vois ce qui change quand ça marche et quand ça marche pas peut être ?

  3. #3
    Membre averti
    Profil pro
    Lycéen
    Inscrit en
    Octobre 2011
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Octobre 2011
    Messages : 14
    Par défaut
    Oui c'est bien un JPG...

    var_dump ? Tu pourrais m'expliquer ? Je suis, comme tu le vois, débutant

  4. #4
    Membre Expert
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2008
    Messages
    1 051
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Hautes Pyrénées (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Octobre 2008
    Messages : 1 051
    Par défaut
    La casse est peut-être importante et un .jpg est différent de .JPG ainsi que .jpeg et .JPEG.

    Tu as regardé cela ?

    Citation Envoyé par iSteelZ Voir le message
    var_dump ? Tu pourrais m'expliquer ? Je suis, comme tu le vois, débutant
    Le var_dump te permet d'afficher ta variable et son contenu, histoire de voir qu'elle n'est pas null ...

    Entre autre ici tu devrais faire un au début de ta fonction, histoire de voir ce que contient ta source quand ça fonctionne pas ...

  5. #5
    Membre averti
    Profil pro
    Lycéen
    Inscrit en
    Octobre 2011
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Octobre 2011
    Messages : 14
    Par défaut
    Ouhla, sans le header y a TELLEMENT d'erreurs dans une image prise avec mon téléphone (un .jpg d'après var_dump : string 'upload/iSteelZ20120623-135438.jpg' (length=33))
    Mais les erreurs...

    http://pastebin.com/JEbr5gQP
    (pour pas que ça prenne toute la place)

  6. #6
    Membre Expert
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2008
    Messages
    1 051
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Hautes Pyrénées (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Octobre 2008
    Messages : 1 051
    Par défaut
    Quand obtiens-tu cette erreur ? Lors de l'upload de l'image ?

    Sinon je vois ceci :
    No such file or directory in C:\wamp\www\debug\fxphoto.php on line 14
    Ça semble être explicite ... qu'as-tu à cette ligne ?

Discussions similaires

  1. [RegEx] REGEX qui ne marche que dans certains cas
    Par Galdon dans le forum Langage
    Réponses: 4
    Dernier message: 14/01/2010, 09h15
  2. lien PHP avec arret sur image qui ne marche pas
    Par MYBEE DESIGN dans le forum ActionScript 1 & ActionScript 2
    Réponses: 0
    Dernier message: 12/09/2009, 19h17
  3. CSS input qui ne marche que sur Firefox
    Par DJ Caësar 9114 dans le forum Mise en page CSS
    Réponses: 4
    Dernier message: 24/04/2009, 09h41
  4. input type=image qui ne marche pas toujours
    Par lenissart dans le forum Balisage (X)HTML et validation W3C
    Réponses: 5
    Dernier message: 26/11/2008, 14h35
  5. [Eclipse 3.0.1] Image qui n'affiche que son path
    Par thehpman dans le forum Eclipse Java
    Réponses: 2
    Dernier message: 16/03/2005, 11h28

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