色々あるんですよ。
最低限の格納データ
BLOBで保存する場合、BLOB自体とファイル形式があればいい。
1つ目(そのまま使う)
こんな感じでいける。
<?php
$id = $_GET['id'];
$pdo = new PDO( 'mysql:host=***;dbname=***;', '***', '***', [ PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC ]);
$stmt = $pdo->prepare("SELECT * FROM *** WHERE id IN ($id)");
$stmt->execute();
$row = $stmt->fetch();
header('Content-type: ' . $row['image1_genre']);
echo $row['image1'];
exit();
?>
出力はこうなる。
<a href="https://~/image1.php?id=***"><img src="https://~/image1.php?id=***"></a>
phpファイルを画像ファイルとして扱うことになる。
表示したいだけだったらこっちが楽。
2つ目(base64でやる)
こう。
<?php
$id = $_GET['id'];
$pdo = new PDO( 'mysql:host=***;dbname=***;', '***', '***', [ PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC ]);
$stmt = $pdo->prepare("SELECT * FROM *** WHERE id IN ($id)");
$stmt->execute();
$row = $stmt->fetch();
$img = base64_encode($row['image1']);
$image_url = 'data:'.$row['image1_genre'].';base64,'.$img;
?>
<img src="<?php echo $image_url; ?>">
一般的なのは多分こっち。よく見る。
それぞれに用途があるので両方知っておいたほうが便利かも。
コメント