14

だから私の最後の質問は、検索から私のtechIDを表示する方法についてでした:

「詳細」ページで、techID を介してリンクされているサーバーの 2 つの別々の部分を参照しようとしています。

私の新しい質問はまだこのページにあります。エコー画像も追加しました。Blobしかし、バイナリJPEGデータではなく、自分の画像を使用して表示するのに問題があります。これの別のインスタンスを見つけようとしましたが、エラーを修正するものを見つけることができません。

//Header ('Content-type: image/jpeg')
echo "<dt><strong>Technician Image:</strong></dt><dd>" . '<img src='.$row2['image'].' width="290" height="290">' . "</dd>";

$query_Recordset2 = "SELECT * FROM technician WHERE techID=" . $row1["techID"] ;
$Rs2 = mysql_query($query_Recordset2) or die(mysql_error());

最後の質問からこれまでに加えた唯一の変更です(明らかに、私が与えられた修正を含みます)。

私が理解していないのは、'Content-type: image/jpeg'リンクされている画像をページに認識させるためにどこにどのように配置するかです。それは MIME TYPEimage/jpegです。

私のページに表示されているのはこれです

技術者の画像: �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�<em>��,N������[{+D� �;�'�$�$�&�iJR��)JR��)JR� �)JR��)JR��)JR��)JR��)JR��)JR��)JR��)JR��)JR��)�� width="290" height="290" >

明らかに、中間のチャンクを削除したので、大規模ではありません。正面に表示される小さな「壊れた画像」ボックスがあり、右クリックして「新しいウィンドウで画像を開く」を選択すると、それが入れるURLは単純であるContent-type:か、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

インターネットへのリンクではないため、その URL にスペースを入れました。

64Kb未満の小さな画像として必要なだけなので、通常のBLOBタイプのみを使用しました

4

4 に答える 4

39

現在の場合、2つの事前オプションがあります。

1つ目は、このような画像が多数ある場合はお勧めしませんが、インラインbase64エンコーディングを使用することです。これは次の方法で行われます。

<img src="data:image/jpeg;base64,<?php echo base64_encode($image); ?>" />

既存のコードを使用したコピー/貼り付けバージョン:

echo '<dt><strong>Technician Image:</strong></dt><dd>'
     . '<img src="data:image/jpeg;base64,' . base64_encode($row2['image']) . '" width="290" height="290">'
     . '</dd>';

2番目の方法は、データベース内の画像のIDをクエリ文字列パラメータとして受け取り、画像を出力する「画像」PHPファイルを作成することです。したがって、HTMLは次のようになります。

<img src="image.php?id=<?php echo $image_id; ?>" />

そして、PHPページは次のようになります。

<?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;
?>
于 2012-11-05T04:05:01.797 に答える
2

ドキュメントと同じページから画像を出力できる唯一の方法は、データURIを使用することです。

echo "<dt><strong>Technician Image:</strong></dt><dd>" . 
     '<img src="data:image/jpeg;base64,'.
      base64_encode($row2['image']).
      '" width="290" height="290">' . "</dd>";
于 2012-11-05T04:04:33.617 に答える
-1

最善の解決策は、画像全体を BLOB として保存するのではなく、画像のパスをデータベースに保存することだと思います。次に、Web ページに画像を表示するには、img タグの src プロパティをデータベースに保存されているパスに設定します。

于 2012-11-05T04:06:38.080 に答える