Ma dernière question était donc de savoir comment afficher mon techID à partir d'une recherche:
Ma nouvelle question est toujours sur cette page. J'ai également ajouté une image d'écho. mais j'ai du mal à utiliser Blob
et à lui faire afficher mon image et non les données JPEG binaires. J'ai essayé de trouver une autre instance de cela, mais je ne trouve aucune solution à mon erreur.
//Header ('Content-type: image/jpeg')
echo "<dt><strong>Technician Image:</strong></dt><dd>" . '<img src='.$row2['image'].' width="290" height="290">' . "</dd>";
et
$query_Recordset2 = "SELECT * FROM technician WHERE techID=" . $row1["techID"] ;
$Rs2 = mysql_query($query_Recordset2) or die(mysql_error());
Est-ce que les seuls changements que j'ai apportés jusqu'ici de ma dernière question (y compris évidemment le correctif qui m'a été donné qui a fonctionné).
Ce que je ne comprends pas, c'est où et comment mettre 'Content-type: image/jpeg'
pour que ma page reconnaisse l'image qui est liée, c'est son TYPE MIME image/jpeg
.
Voici ce que je vois sur ma page
Image du technicien: �E��j��i` = 7f $ D��o "�������b���Ckkc��R�� ^ M�; n ~ ��0 & m) J�� R��E) JDR��E) JDR��E) JDR��E) JDR��E) JDR��E) JDSjR��) ��� + ��N��.R, u��� �i��n9, ���QX ~ ���� {(����̮�: ���2�12�� "��aV7�6��� {���LP [�W� ����گ� R $ + � ��LMc'hM�5�o�PA���� | ��� ګ���.8�� E��ģ��Rn ��1� [� � {��3> �rY��X� ۜ; � Ǖ����u���z��'�vf �N葟 ��z�Q�����k��3���O�� ܨ� ۀ�? S� ��, N � ����� [{+ D� �; �'� $ � $ � & �iJR��) JR��) JR��) JR��) JR��) JR��) JR��)) JR��) JR��) JR��) JR��) JR��) �� largeur = "290" hauteur = "290">
Évidemment, j'ai supprimé un morceau du milieu donc ce n'est pas énorme. il y a une petite boîte "Image cassée" qui apparaît en face et quand je clique avec le bouton droit et que je choisis "Ouvrir l'image dans une nouvelle fenêtre" l'URL qu'elle met est simplement Content-type:
ou j'obtiens une page d'accès interdit avec l'url http:// localhost/Sim5Server/Pages/%EF%BF%BD%EF%BF%BD%EF%BF%BD%EF%BF%BD%EF%BF%BD%10JFIF%EF%BF%BD%01%02%EF%BF%BD%EF%BF%BDd%EF%BF%BDd%EF%BF%BD%EF%BF%BD%EF%BF%BD%EF%BF%BD%EF%BF%BDC%EF%BF%BD
J'ai mis un espace dans cette URL car ce n'est pas un lien pour Internet.
Je n'ai utilisé que le type BLOB normal car j'en ai juste besoin en tant que petite image inférieure à 64 Ko
Dans votre cas actuel, vous avez deux options initiales.
La première, et celle que je ne recommande pas si vous avez de nombreuses images comme celle-ci, consiste à utiliser l'encodage en base64. Cela se fait avec:
<img src="data:image/jpeg;base64,<?php echo base64_encode($image); ?>" />
Une version copier/coller, en utilisant votre code existant:
echo '<dt><strong>Technician Image:</strong></dt><dd>'
. '<img src="data:image/jpeg;base64,' . base64_encode($row2['image']) . '" width="290" height="290">'
. '</dd>';
La deuxième méthode consiste à créer une "image" PHP qui prend l'ID de l'image dans la base de données comme paramètre de chaîne de requête et génère l'image. Ainsi, votre code HTML ressemblerait à quelque chose comme :
<img src="image.php?id=<?php echo $image_id; ?>" />
Et votre page PHP ressemblerait à quelque chose de similaire à:
<?php
$id = (isset($_GET['id']) && is_numeric($_GET['id'])) ? intval($_GET['id']) : 0;
$image = getImageFromDatabase($id); // your code to fetch the image
header('Content-Type: image/jpeg');
echo $image;
?>
La seule façon de produire une image à partir de la même page que le document est avec un data uri .
echo "<dt><strong>Technician Image:</strong></dt><dd>" .
'<img src="data:image/jpeg;base64,'.
base64_encode($row2['image']).
'" width="290" height="290">' . "</dd>";
Le bon code doit être comme ci-dessous. Vous devez utiliser stream_get_contents () pour changer l'ID de ressource en chaîne.
<img src="data:image/jpeg;base64,<?php echo base64_encode(stream_get_contents($row2['image'])); ?>" />