Prebleme d'affichage des images dans un champ blob de mysql

azertsissmail Messages postés 3 Date d'inscription mardi 15 avril 2014 Statut Membre Dernière intervention 3 août 2014 - Modifié par Whismeril le 3/08/2014 à 22:23
jordane45 Messages postés 38138 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024 - 4 août 2014 à 00:27
Bonjour je développe actuellement un site web avec le language de programmation php, j'ai créée une base de données dans mysql avec un tableau qui contient un champ "image" de type "blob", et aprés j'ai créé un formulaire en php pour parcourir mes images et l'enregistrer dans la base de données, ca a bien marché, mais quand j'ai crée le code php pour récupérer les images et les afficher, j'ai trouver un probléme au niveau de l'afficahe de l'image, il parait une page web comme ci-dissous :
???=????;???????;Pi?J??????@?M?LK? ?????wB?????Wy?????8?? ?1?J?x0@=?r?b,? ~?ezoa?4??p=??,WuK?????+??U??5??~)?V??.*T?P)??E#??+j ??:?e?5??{?B?r?,?J??L ?SE&?=?A ???%u


voici le code que j'ai utiliser pour parcourir les image :

<form enctype="multipart/form-data" action="traitements.php" method="post">
  <p>
   <label for="nom">Nom : </label><input type="text" name="nom" id="nom" /><br />
   <label for="description">Description : </label><textarea name="description" id="description" rows="10" cols="50"></textarea><br />
   <label for="image">Image : </label><input type="file" name="image" id="image" /><br />
   <label for="validation">Valider : </label><input type="submit" name="validation" id="validation" value="Envoyer" />
  </p>
 </form>

</body>
<?php
  if(isset($_POST['validation'])) {
 
  //Indique si le fichier a été téléchargé
  if(!is_uploaded_file($_FILES['image']['tmp_name']))
  echo 'Un problème est survenu durant l opération. Veuillez réessayer !';
  else {
  //liste des extensions possibles    
  $extensions = array('/png', '/gif', '/jpg', '/jpeg');
 
  //récupère la chaîne à partir du dernier / pour connaître l'extension
  $extension = strrchr($_FILES['image']['type'], '/');
 
  //vérifie si l'extension est dans notre tableau            
  if(!in_array($extension, $extensions))
   echo 'Vous devez uploader un fichier de type png, gif, jpg, jpeg.';
  else {         
 
   //on définit la taille maximale
   define('MAXSIZE', 300000);        
   if($_FILES['image']['size'] > MAXSIZE)
      echo 'Votre image est supérieure à la taille maximale de '.MAXSIZE.' octets';
   else {
    //connexion à la base de données
    try {
     $bdd = new PDO('mysql:host=localhost;dbname=test', 'root', '');
    } catch (Exception $e) {
     exit('Erreur : ' . $e->getMessage());
    }
 
    //Lecture du fichier
    $image = file_get_contents($_FILES['image']['tmp_name']);
 
    $req = $bdd->prepare("INSERT INTO images(nom, description, img, extension) VALUES(:nom, :description, :image, :type)");
    $req->execute(array(
     'nom' => $_POST['nom'],
     'description' => $_POST['description'],
     'image' => $image,
     'type' => $_FILES['image']['type']
     ));
 
    echo 'L\'insertion s est bien déroulée !';
    }
    }
   }
  }
?>

et pour l'affichage :

<?php
try
{
     
    $bdd = new PDO('mysql:host=localhost;dbname=test1', 'root', '');
}
catch(Exception $e)
{
     
        die('Erreur : '.$e->getMessage());
}
 
 
 
 
$reponse = $bdd->query('SELECT * FROM images');
 
 
while ($donnees = $reponse->fetch())
{
    ?>

<table id="table1" border="1">
<tr>
<td>
<?php 
echo ' <img scr="'.$donnees['img'].'">';
   
?>
</td>
</tr>
</table> 
<?php
  }
 
$reponse->closeCursor();
 
?>


s'il vous plait aider moi à résoudre mon probléme et merci.

2 réponses

Whismeril Messages postés 19025 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 19 avril 2024 656
3 août 2014 à 22:24
Bonjour, message modifié par l'ajout des balises de code.
Voir ici comment bien utiliser la coloration syntaxique.
0
jordane45 Messages postés 38138 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024 344
4 août 2014 à 00:27
Bonjour,
As tu essayé l'encodage64 ?

http://stackoverflow.com/questions/13225726/i-need-my-php-page-to-show-my-blob-image-from-mysql-database

une simple recherche sur le net aurait pu te mettre sur la voie sans trop de soucis...
http://lmgtfy.com/?q=php+read+blob+picture+mysql


.
0
Rejoignez-nous