5

MySQL DB内に保存された画像(ブロブデータ)をPHPにリンクしようとしましたが、達成できたのは文字のページ全体だけでした。これは私がしたことです:

$query = "SELECT image FROM uploads WHERE id = {$id}";
$image_array = mysql_query($query, $connection);
$row = mysql_fetch_array($image_array);
$image = $row['image'];

echo $image;
// echo base64_decode($content);

これにより、生データがどのように保存されているかが表示されます。私はそれを HTML タグにリンクするか、少なくともページに表示したいと思います。私にとっては解決策ではありません。

何かアドバイス?

4

3 に答える 3

8

Content-type: image/png画像を正しく表示するには、前に 1 つのヘッダーを配置するだけですecho

header("Content-type: image/png");
echo (base64_decode($row['image']));

代わりに画像タグに配置したい場合は、このコードを使用するだけです

echo '<img src="data:image/png;base64,' . $row['image'] . '" />'; 
于 2013-06-07T13:24:18.253 に答える
1

適切なヘッダーを指定する必要があります。そうしないと、ページは何を送信しているのかわかりません。

// define results into variables 
$name=mysql_result($result,0,"file_name"); 
$size=mysql_result($result,0,"file_size"); 
$type=mysql_result($result,0,"file_type"); 
$content=mysql_result($result,0,"file_stream"); 

// give our picture the proper headers...otherwise our page will be confused 
header("Content-Disposition: attachment; filename=$name"); 
header("Content-length: $size"); 
header("Content-type: $type"); 
echo $content; 
于 2013-06-07T13:23:56.460 に答える
0

「インライン画像」と呼ばれるものを使用する必要があります。$image 変数に base64 でエンコードされたデータが含まれていると仮定して、次のコードを使用してページに画像を表示します。

<img src="data:image/png;base64,<?php echo $image; ?>" alt="Larry" />

ソース: https://en.wikipedia.org/wiki/Data_URI_scheme

于 2013-06-07T13:24:28.637 に答える