Salut à tous,
Je me permet de remettre ce sujet en actu car j'ai le même problème que Dougou.
Pratiquant l'upload de fichier et le stockage du chemin, je me suis orienté vers le stockage BLOB pour pouvoir faire évoluer mon application (de GED) plus facilement.
Ayant des bêtes de courses (je parle de mes serveurs...) les perf ne sont plus mon problème ...
Ma config en local :
OS : Window 7
Serveur WAMP server.
Avant de me lancer tête baissé vers cette solution (qui dans mes conception MCD et UML me convient) je voulais tester très rapidement le fonctionnement.
J'ai fait le tuto suivant :
http://beaussier.developpez.com/article ... ysql/blob/ mais ça ne fonctionne pas pourtant le code (même si il est ancien devrait fonctionner).
Suite à cela j'ai fait plusieurs test.
- Un fichier index.php et une image avec le code suivant pour voir si ça ne venais pas de ma config et ça marche:
header('Content-type: image/jpeg');
$img = base64_encode(file_get_contents('img.jpg'));
echo base64_decode($img);
- le deuxième test qui ne marche pas :
- Table images -> img_id:int | img_nom:varchar(45) | img_blob : longblob | img_type : varchar(25)
- j'ai deux insertions dans ma table avec des blob/images enregistrés directement depuis ma bdd
- 3 fichiers : index.php
include 'connexion.php';
$select = 'SELECT img_id, img_nom FROM images';
$query = mysql_query($select);
echo '<table>
<tr>
<th>ID</th>
<th>NOM</th>
<th>IMAGE</th>
</tr>';
while($r = mysql_fetch_object($query)){
echo '
<tr>
<td>'.$r->img_id.'</td>
<td>'.$r->img_nom.'</td>
<td><a href="image.php?id='.$r->img_id.'"><img src="image.php?id='.$r->img_id.'" alt="image '.$r->img_id.'"/></a></td>
</tr>';
}
echo'</table>';
- connexion.php :
$hote = 'localhost';
$base = 'blob';
$user = 'root';
$pass = '';
$cnx = mysql_connect ($hote, $user, $pass) or die (mysql_error ());
$ret = mysql_select_db ($base) or die (mysql_error ());
- image.php
header('Content-type:image/jpeg');
// $img = file_get_contents('img.jpg');
// echo $img;
include 'connexion.php';
$id = (int) $_GET['id'];
$select = 'SELECT img_blob FROM images WHERE img_id = '.$id.';';
$q = mysql_query($select);
$r = mysql_fetch_object($q);
echo $r->img_blob;
Le principe c'est que mon index m'affiche mes images contenu dans ma base de données en passant par le script image.php.
Ca marche pas !
J'ai essayé de changer le charset de la BDD, sans succès.
Si quelqu'un a une à plusieurs idées je suis preneur.
Cordialement Skim.