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