Afficher une image dans un BLOB

Signaler
Messages postés
10
Date d'inscription
jeudi 31 janvier 2008
Statut
Membre
Dernière intervention
8 avril 2008
-
mahlaoui
Messages postés
29
Date d'inscription
lundi 10 décembre 2007
Statut
Membre
Dernière intervention
13 octobre 2008
-
Salut à tous,

J'ai un souci sur mon site :
J'ai une BDD MYSQL dans laquelle j'insère dans des tables des images dans des BLOB (ne lançons pas le débat entre mettre une image dans un BLOB ou stocker son adresse et la stocker dans un répertoire : j'ai choisi l'intégration dans un BLOB... c'est mon choix comme dirais Evelyne Thomas du temps où elle était en vie... paix à son âme télévisuelle). BREF !!!!
Le souci : quand je lance ma requete (ex: sur la table membre : j'affiche les détails dans une page PHP avec la Photo). or la photo : ou s'affiche sous forme de texte (données binaires) ou prend la place du tableau dans lequel elle devrait s'insérer :sur la page il n'y a qua la photo.
J'arrive avec un lien "agrandir la photo" à ouvrir une nouvelle page avec la photo grandeur réelle nickel.
Les seules solution trouvées sur Google sont soit de cliquer sur quelquechose et lancer un aperçu.php, soit d'ecrire le fichier sur l'ordi du client et mettre dans ma page un simple lien html... >src=etc...>
Ne peux t-on pas afficher directement l'image du BLOB dans une page PHP, dans un tableau, directement (avec ou sans zone image ??????

Merci pour celui qui a la salution ! bénit soit-il !!! ;-)

Fred_Beginner

9 réponses

Messages postés
10
Date d'inscription
jeudi 31 janvier 2008
Statut
Membre
Dernière intervention
8 avril 2008

Pour aider ceux qui galèrent, j'ai enfin trouvé la solution :
" alt="" />

au lieu de echo $imgid
cela permet d'afficher l'imag contenue dans une BDD (BLOB) dans une page html ou php et non pas toute seule dans une page nue !

Fred_Beginner
Messages postés
17
Date d'inscription
vendredi 11 avril 2003
Statut
Membre
Dernière intervention
17 mars 2015

pour moi ça marche pas :-(
Messages postés
10
Date d'inscription
jeudi 31 janvier 2008
Statut
Membre
Dernière intervention
8 avril 2008

Ben dis m'en plus tu cherches à afficher l'image dans une page php ? comment est le fichier qui récupère l'image ? poste le code on verra si je peux t'aider, je débute mais il faut s'entraider !

A+

Fred_Beginner
Messages postés
17
Date d'inscription
vendredi 11 avril 2003
Statut
Membre
Dernière intervention
17 mars 2015

Slt fred_beginner

voici mon code de base avant d'avoir essayé à ta maniere :

<?php
if ($id_files) {
  include "open_db.inc";
  $sql = "SELECT bin_data, filetype, filename, filesize FROM tbl_Files WHERE id_files=$id_files";
 
  $result = @mysql_query($sql, $db);
  $data = @mysql_result($result, 0, "bin_data");
  $name = @mysql_result($result, 0, "filename");
  $size = @mysql_result($result, 0, "filesize");
  $type = @mysql_result($result, 0, "filetype");
 
  header("Content-type: $type");
  header("Content-length: $size");
  header("Content-Disposition: attachment; filename=$name");
  header("Content-Description: PHP Generated Data");
  echo $data;
}
?> 
Messages postés
10
Date d'inscription
jeudi 31 janvier 2008
Statut
Membre
Dernière intervention
8 avril 2008

voici mon code en résumé, si ca peut t'aider:

1/ mon fichier apercu.php


<?php
// Connection BDD
etc....


// Récupération de l'ID image pour affichage par méthode GET
if ( isset($_GET['idpic']) )
{
$id = intval ($_GET['idpic']);$req "SELECT img_id, img_type, img_blob FROM images_notations WHERE img_id ".$id;
$ret = mysql_query ($req) or die (mysql_error ());
$col = mysql_fetch_row ($ret);
if ( !$col[0] )
{
echo "Id d'image inconnu";
}
else
{
header ("Content-type: ".$col[1]);
print $col[2]; // correspond à  img_blob dans la requête
}
}
else
{
echo "Mauvais id d'image";
}
?>


2/ ma page où j'affiche l'image par exe  fiche_membre.php


<?php
// Connection BDD
etc....
Par une variable de session je récupère l'identifiant de la personne :$user
et je fais une requête pour trouver le numero de sa photo :


// Requête dans la BDD données table membres
$sql = "SELECT Nom, Prenom, adresse, Codepostal, Commune, PhotoUser FROM table_membres WHERE IDUSERVALID='".$user'";
$result = mysql_query($sql);
if (!$result) {echo "Erreur d'accès à la base : " . mysql_error();   exit;}


$row = mysql_fetch_assoc($result);
etc....
$photo_user=$row["PhotoUser"];


// Requête dans la BDD dans la table des images (les image perso sont dans une autre table que celle des membres)
$req = "SELECT img_id, img_type, img_nom, img_blob FROM images_users WHERE img_id='".$photo_user."'";
$ret = mysql_query ($req) or die (mysql_error ());
$col = mysql_fetch_row ($ret);
if ( !$col[0] )
{
$msg="Id d'image inconnu";
}
else
{
header ("Content-type: ".$col[1]);
}
?>
<html>
<head>
</style>
</head>


<th align="left" valign="top" scope="row">Photo :</th>


<td align="left" valign="middle">" width="60" height="60" alt="">&nbsp;</td>



</html>


Donc refait ta requête sur en base a peux près identique.

j'ai travaillé d'après ce tuto :
http://beaussier.developpez.com/articles/php/mysql/blob/
Bon courage !

Fred_Beginner
Messages postés
17
Date d'inscription
vendredi 11 avril 2003
Statut
Membre
Dernière intervention
17 mars 2015

Merci fred_beginner,

je vais essayer de m'appuyer sur une basse identique à la tienne,
moi c'est plutot pour afficher des doc word.

j'essaye et je te tiensd au courant

thanks.

kamalou
Messages postés
17
Date d'inscription
vendredi 11 avril 2003
Statut
Membre
Dernière intervention
17 mars 2015

salut fred_beginner,

j'ai repris l'exemple fournit dans le lien que tu m'a donné et ça marche aussi bien pour les images que les .doc.
mais c'est un peut lent ,
est ce que chez toi c'est lent aussi l'affichage des images?

Sinon est ce que tu sais si on peut avec php parser le contenu d'un document Word ou rtf etc...?

en tous cas merci pour ton aide, elle m'a été fort utile!

à plus.

kamalou 
Messages postés
10
Date d'inscription
jeudi 31 janvier 2008
Statut
Membre
Dernière intervention
8 avril 2008

L'affichage va vite, pour l'instant je ne suis qu'en phase de développement je ne bosse qu'en local avec Easyphp, mais j'ai limité la taille des image à 250Ko ce qui semble suffisant.

Quant à savoir si on peut avec php parser le contenu d'un document Word ou rtf, je ne sais pas encore, mais fais une recherche sur le site ou via Google tu devrais trouver !

A+

Fred_Beginner
Messages postés
29
Date d'inscription
lundi 10 décembre 2007
Statut
Membre
Dernière intervention
13 octobre 2008

& pour l'insetion dans la BD ??