Bonjour,

Après de nombreuses recherche sur différents forums, je n'arrive pas à résoudre mon problème.
Je suis en train de créer un site sous le modèle MVC.
Je souhaite récupérer des images préalablement stockées dans une base de données et ensuite les afficher. J'ai donc créer un champ image avec comme type "longblob", mais à l'affichage obtient une série de code : "?U?z???K>??nv?V8??3???U]U??{?<????0'?? 0'?? 0'?? 0'?? 0'?? 0'?? 0'?? 0'?? " etc.
J'ai lu qu'il était fortement déconseillé de stocker une image dans une base de données mais plus tôt son chemin et ensuite de l'uploader.

Voici le code :

dans le contrôleur :

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
<?php  
 
 $type = $_GET['typeL'];  
 
 //On inclut le modèle  
 include(dirname(__FILE__).'/../modeles/loisirs.php');  
 
 
 // On récupère les loisirs  
 $L = recuperer_L($type);  
 
 // On inclut la vue  
 include(dirname(__FILE__).'/../vues/loisirs.php');  
 
?>

dans le modèle :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
<?php  
 function recuperer_L($type)  
 {  
  $L = array ();  
  $req = mysql_query("SELECT typeL,libelleL,texteL,imageL FROM LOISIRS WHERE typeL='$type'")or die(mysql_error());  
  echo $req;  
  while ($data = mysql_fetch_assoc($req))  
  {  
   $L[] = $data;  
  }  
  return $L;  
 }
?>
Et dans la vue :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
<?php 
foreach($L as $data)  
{  
    echo '<ul class="articles">';  
    echo '<li>';  
    echo "<img src ='images/".$data['imageL']."'.png";  
    echo '<h3>'.$data['libelleL'].'</h3>';  
    echo '<div class="para2">'.$data['texteL'].'</div>';  
    echo '</li>';  
   echo '</ul>';  
}  
?>
Et ma bdd :

CREATE TABLE IF NOT EXISTS 'loisirs' (
'noL' int(10) NOT NULL,
'libelleL' varchar(30) COLLATE utf8_unicode_ci NOT NULL,
'typeL' varchar(30) COLLATE utf8_unicode_ci NOT NULL,
'texteL' mediumtext COLLATE utf8_unicode_ci NOT NULL,
'imageL' longblob NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;

Contenu de la table 'loisirs'

INSERT INTO 'loisirs' ('noL', 'libelleL', 'typeL', 'texteL', 'imageL') VALUES
(1, 'Peche', 'L', 'À partir du 1er octobre au 31 mars., 0x89504e470d0a1a0a0000.....)


Je vous remercie d'avance,