1

データベースからの画像を表示するために以下のコードを書きます

<?php
mysql_connect("localhost","root","");
mysql_select_db("test");
$qry = "select id from image";
$res = mysql_query($qry) or die(mysql_error());
while($row = mysql_fetch_array($res))
{
  echo "<img src=image.php?id='$row[0]'>";
}
?>

Image.php

<?php
$query = mysql_query("SELECT img FROM images WHERE id = ".$_GET['id']);
$row = mysql_fetch_array($query);
if($type=="pjpeg")
$type="jpeg";
header("Content-type:$type");
echo $row['img'];
?>

しかし、これは機能しません。空白の画像アイコンが表示されます。

4

3 に答える 3

7

base64 エンコードを使用してイメージを組み込むこともできます。お気に入り

<img src="data:image/jpeg;base64,/9j/4AAQSkZJRgABAQEAWgBaAAD/4gxYSUNDX1BST0ZJTEUAAQEAAAxITGlubwIQAAB..." />

UPDATE、base64 エンコーディングの例

あなたはそれを簡単に行うことができます:

<?php
$imageId = intval($_GET["id"]);

$query = mysql_query("SELECT img FROM images WHERE id = ". $imageId);
$row = mysql_fetch_array($query);

$mime = null;
// place $type init. here
if ($type=="pjpeg") // <<< where do you get $type btw?
    $mime = "image/jpeg";

$b64Src = "data:".$mime.";base64," . base64_encode($row["img"]);
echo '<img src="'.$b64Src.'" alt="" />';
?>
于 2012-11-28T10:03:09.833 に答える
1

jpegは有効な Content-Type ではありません。image/jpeg

于 2012-11-28T09:58:28.780 に答える
0

上記のように + 必ずreplace = trueパラメーターをヘッダー関数に渡します。

header( 'Content-Type: image/jpeg', true );

于 2012-11-28T10:01:31.873 に答える