-3

MySQLサーバーからjpg画像を選択した後、それを別の部門にエコーしようとすると、これを使用するとASCII文字の寄せ集めとして表示されます。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="image/jpeg; charset=UTF-8" />
<title>Untitled Document</title>
</head>
<body>

<div id = "myDiv">
<h2>Div</h2>
<?php
  require_once('appvars.php');
  require_once('connectvars.php');
  $dbc = mysqli_connect(DB_HOST, DB_USER, DB_PASSWORD, DB_NAME);
  $id = 1;
  $query = "SELECT image FROM images WHERE id=?";
  $stmt = $dbc->prepare($query);
  $stmt->bind_param("i",$id);
  $stmt->execute();
  $stmt->store_result();
  $stmt->bind_result($image);
  $stmt->fetch();
  echo $image;
 ?>
</div>
</body>
</html>

助けてくれてありがとう!

4

4 に答える 4

2

えーと...それで...あなたはHTMLを送っていますか、それとも画像を送っていますか?両方を送信することはできません!

(まあ、data:URLを介して行うことはできますが、古いIEではあまりサポートされていません)

一見すると、HTMLを使用している唯一の理由は、コンテンツタイプヘッダーを設定することです。この場合、PHPが必要です。

header("Content-Type: image/jpeg");

本当に画像をHTMLに埋め込みたい場合は、次のことを試してください。

echo "<img src=\"data:image/jpeg;base64,".base64_encode($image)."\" />";
于 2012-04-17T00:43:31.077 に答える
0

まず第一に、画像やその他の大きなバイナリファイルをデータベースに保存することをお勧めすることはできません。ファイルシステムに保存し、DBにパスを保存する方がはるかに良いでしょう。

次に、ページの中央に画像データをぼかすだけでは不十分です。<img>HTMLタグを使用する必要があります。Kolinkが上で述べたように、画像をHTMLに埋め込むことができますが、キャッシュされないことを意味するため、お勧めしません。サーバーに別のURLで画像を提供させ、を使用してページに埋め込みます<img src="path/to/image" alt="Alternate text here" />

于 2012-04-17T00:47:24.170 に答える
0

ブラウザは、エコーしている「div」内の画像を認識しません。このPHPスクリプトを分離して、を使用する必要があります<div><img src="/path/to/script.php"></div>。これにより、コンテンツが画像であることがブラウザに通知されます。

于 2012-04-17T00:43:03.717 に答える
0

あなたはここでたくさん静かに混同しました。まず、コンテンツ記述子が間違っているHTMLドキュメントがあります。次に、生の画像データをHTMLドキュメントに送信することはできません。-前にbase64でエンコードする必要があります。

于 2012-04-17T00:45:33.513 に答える