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 :

imagepng: L'image ne peut être affichée, erreurs


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Rédacteur/Modérateur
    Avatar de ero-sennin
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2005
    Messages
    2 965
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2005
    Messages : 2 965
    Par défaut imagepng: L'image ne peut être affichée, erreurs
    Bonjour,

    J'essaie de faire un redimensionnement d'images avec la méthode décrite dans ce tuto mais j'obtiens ce message :
    L'image “http://127.0.0.1/site/ajouter_produit.php” ne peut être affichée car elle contient des erreurs.
    Voici le code PHP (simplifié) :

    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
    <?php
    include("session.php");
    include("connect.php");
    header("Content-type: image/png"); //format png
    header("Content-type: image/jpeg"); //format jpg
    header("Content-type: image/gif"); //format gif
    include("mesfonctions.php");
    include("entete.php");
    mysql_connect($serveur,$login,$mdp) or die ("Problème de connection à Mysql");
              mysql_select_db($bd) or die ("Base de données introuvable");
     
              $erreurUpload=upload($referenceProduit);
              if(!$erreurUpload)
              {
                $erreur=true;
              }
     
              ///////////////////////////////////////////
              //ENREGISTREMENT DANS LA BASE DE DONNEES//
              /////////////////////////////////////////
              if (!isset($erreur))
              {
                      $sql='INSERT INTO PRODUIT (...)'
              }
    ?>
    Voici le code de mesfonctions.php :

    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
    74
    75
    76
    <?php
      // Génère la miniature de l'image
      function genere_miniature($cheminImageReelle,$extension) 
      {
        $destinationDossierMiniature = './photos/miniatures/';
      	// Calcul du ratio entre la grande image et la miniature
      	list($largeur, $hauteur) = getimagesize($cheminImageReelle);
      	$ratio = 100/$largeur;
     
      	$larg_miniature=$largeur*$ratio;
      	$haut_miniature=$hauteur*$ratio;
     
     
      	// Crée la ressource image pour la miniature
      	$destination = imagecreatetruecolor($larg_miniature, $haut_miniature);
     
      	// Retourne un identifiant d'image jpeg, gif ou png
      	$source = call_user_func('imagecreatefrom'.$extension,$cheminImageReelle);
     
      	// Redimensionne la grande image
      	imagecopyresampled($destination, $source, 0, 0, 0, 0, $larg_miniature, $haut_miniature, $largeur, $hauteur);
     
     
      	// Ecriture physique de l'image
      	chmod ($destinationDossierMiniature, 0700);
      	call_user_func('image'.$extension, $destination,$destinationDossierMiniature);
     
      	// Détruit les ressources temporaires crées
      	imagedestroy($destination);
      	imagedestroy($source);
      }
     
      function upload($nomPhoto)
      {
        $erreurExtension="Seuls les extensions suivantes sont autorisées: png, gif, jpg, jpeg.";
        $erreurTaille="Le poids de l'image ne peut excéder 200Ko.";
        $erreurImage="Le fichier n'existe pas.";
     
     
        $extensionsValide = array('png', 'gif', 'jpg', 'jpeg');
        $tailleMax = 200000;
        $destinationDossier = 'photos/';
        //Test1: fichier correctement uploadé
        if (isset($_FILES['photo']) and ($_FILES['photo']['name']!=NULL))
        {
          if ($_FILES['photo']['size'] <= $tailleMax)
          {
            $extension = substr(strrchr($_FILES['photo']['name'],'.'),1);
            if (in_array($extension,$extensionsValide))
            {
              $_FILES['photo']['name']= $nomPhoto.'.'.$extension;
              $destinationFichier = basename($_FILES['photo']['name']);
              global $cheminImage;
              $cheminImage="photos/".$destinationFichier;
              $destinationFichier = basename($_FILES['photo']['name']);
              genere_miniature('./'.$cheminImage,$extension);
              return move_uploaded_file($_FILES['photo']['tmp_name'], $destinationDossier . $destinationFichier);
            }
            else
            {
              return $erreurExtension;
            }
          }
          else
          {
            return $erreurTaille;
          }
        }
        else
        {
          global $cheminImage;
          $cheminImage="photos/portrait_non_disponible.png";
          return true;
        }
      }
    ?>
    Voilà, j'espère que je n'oublie rien d'essentiel pour la compréhension du code ... J'espère que vous pourrez m'aider.

    De plus, j'ai cette erreur qui m'ennuie :
    imagepng() [function.imagepng]: Unable to open './photos/miniatures/' for writing: Permission denied in C:\serveur php\www\site\mesfonctions.php on line 26
    Pourtant, j'ai bien fait le chmod je pense (voir la fonction genere_miniature)

    Merci de m'avoir lu.
    Cordialement
    Ero-Sennin

  2. #2
    Membre émérite
    Avatar de gwinyam
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2006
    Messages
    1 162
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2006
    Messages : 1 162
    Par défaut
    Je tenterais plutôt un chmod à 0722

  3. #3
    Rédacteur/Modérateur
    Avatar de ero-sennin
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2005
    Messages
    2 965
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2005
    Messages : 2 965
    Par défaut
    Pour le chmod 722, pourquoi pas, mais pour le moment, ce sont les soucis d'header qui me posent problème ... Il faut une page PHP spécialement pour le redimensionnement ?

    Si oui, comment vous me conseillerez de faire ?
    Merci

  4. #4
    Membre émérite
    Avatar de gwinyam
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2006
    Messages
    1 162
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2006
    Messages : 1 162
    Par défaut
    Euh je pensais 0720, pas 0722. Mais si ça marche pas, essaie l'autre sinon.

    La première erreur que tu nous montre est, pour moi, due à la seconde. En corrigeant cette dernière, tu élimineras surement sur la première. A mon avis encore une fois.

  5. #5
    Rédacteur/Modérateur
    Avatar de ero-sennin
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2005
    Messages
    2 965
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2005
    Messages : 2 965
    Par défaut
    Citation Envoyé par gwinyam Voir le message
    Euh je pensais 0720, pas 0722. Mais si ça marche pas, essaie l'autre sinon.

    La première erreur que tu nous montre est, pour moi, due à la seconde. En corrigeant cette dernière, tu élimineras surement sur la première. A mon avis encore une fois.
    Non non, ce n'est pas lié les 2 erreurs
    En effet, même un chmod en 0777 ne résout rien, et c'est bien un problème d'affichage d'image ... (en fait, je veux juste la redimensionner et non l'afficher de suite). J'attends vos avis pour une meilleure compréhension de la chose.

    Merci

Discussions similaires

  1. Réponses: 9
    Dernier message: 19/05/2015, 19h41
  2. [GD] L'image ne peut être affichée car elle contient des erreurs
    Par The Free Man dans le forum Bibliothèques et frameworks
    Réponses: 1
    Dernier message: 29/07/2009, 18h51
  3. [JpGraph] L'image ne peut être affichée
    Par pivol36 dans le forum Bibliothèques et frameworks
    Réponses: 6
    Dernier message: 09/06/2009, 13h51
  4. Image ne peut être affichée car elle contient des erreurs !
    Par van-bom dans le forum Hébergement
    Réponses: 1
    Dernier message: 26/05/2008, 11h00
  5. [ImageMagick] Image ne pouvant être affichée car elle contient des erreurs
    Par hutchuck dans le forum Bibliothèques et frameworks
    Réponses: 5
    Dernier message: 09/12/2005, 13h59

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