dポイントプレゼントキャンペーン実施中!

以下でPHPとMYSQLにて画像jpgを表示できたのですが、
header("Content-type: image/jpeg");
$result = mysql_query("SELECT * FROM test");
$row = mysql_fetch_assoc($result);
print ($row['image']);これだけなら表示OK。
しかし、
テーブルタグの中にprint ($row['image']);をいれたり
while文で囲んだりすると、文字の羅列になってしまいます。好きな場所にprint ($row['image']);で表示するには
どうしたらいいのでしょうか?

A 回答 (4件)

ANo.2です。



>文字の羅列になります。
文字列がブラウザに出力(表示)されているということでしょうか。
であれば、どこかコーディングに問題があるのでしょう。
例示された部分は問題ないようですが、前後が分からないのでなんとも言えません。

>呼び出す方法に切り替えたほうが無難でしょうか?
それで問題が解決するなら「無難」ということでしょう。
方法論としてどちらが良いかは私は分かりかねます。すいません。

この回答への補足

"<img src=\"data:image/jpeg;base64,"
. base64_encode($row['image'])
."\">";
の使い方はIE8からサポートとwebでみかけましたが、
どうなんでしょうか?

補足日時:2009/11/16 22:56
    • good
    • 0

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


$result = mysql_query("SELECT * FROM test");
$row = mysql_fetch_assoc($result);
print ($row['image']);
これだけでなら一応動きますけど、
これ以外の情報は1ビットでも送ってしまったら表示出来なくて当然です。

"Content-type: image/jpeg"
という設定がありますが、
これは、送信するデータはjpeg画像形式のファイルだという意味です。

そもそも、HTMLページにテーブルや画像が表示されているという状況は、
html形式のファイルと画像形式のファイルという複数のデータファイルをブラウザが受信しているからこそ出来ているのですよ。

というか、
画像をブラウザに表示させる為には、
画像ファイルのみをブラウザが受信するか
imgタグで画像のアドレスを設定する以外の手段くらいしかありませんよ。
    • good
    • 0

画像を出力するだけのphpファイルを用意して(既に用意されているかと思います)、それをimgタグで呼び出す方法もあると思います。



ところで、ANo.1の方の回答に対し「できません」だけでは何がいけないのかわかりません。できないならできなかったなりに何をどうしたのか、現状どうなっているか、など詳しく書くようにした方がよいですよ。
質問、回答が冗長するだけです。

この回答への補足

呼び出す方法に切り替えたほうが無難でしょうか?
echo "<img src=\"data:image/jpeg;base64,". base64_encode($row['image'])."\">";ですが、文字の羅列になります。MYSQLにもbase64_encodeで入力してみましたが同じでした。

補足日時:2009/11/15 23:20
    • good
    • 0

ヒント 例えば


echo "<img src=\"data:image/jpeg;base64,"
. base64_encode($row['image'])
."\">";
とかを HTML文 に埋め込むのはどうでしょうか。

この回答への補足

うーまだ表示できません。。

補足日時:2009/11/15 15:12
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!