PHP+MySQLで、DBに一旦イメージを保存して、そのイメージを取り出して読み込み表示する
のに、いろいろ手間取ってしまったので、メモメモ。
■御題
denpa13.JPGというファイルがある。
これを、
$host = "localhost";
$user = "root";
$password = "password";
$database = "test";
のDBに、img_tblというテーブルを作成し、
なかんじでできているので、
(1)img_tblテーブルに
id=2、data=denpa13.JPGのファイル内容(バイナリ)の形で保存
(2)img_tblテーブルから
id=2、のdataをとってきて表示(=denpa13.JPGが表示されるはず)
■DBにイメージ保存
こんなかんじのPHP
ファイル内容のイメージが表示される
■DBからイメージ取得
こんなかんじのPHP
DB内容が表示される
■ちなみに、
はじめDBにキーも設定しないで、てきとうにやってたら、
blobのところにデータが入らず、たいへんだった。
DBは、まじめに作ろう・・・??
のに、いろいろ手間取ってしまったので、メモメモ。
■御題
denpa13.JPGというファイルがある。
これを、
$host = "localhost";
$user = "root";
$password = "password";
$database = "test";
のDBに、img_tblというテーブルを作成し、
なかんじでできているので、
(1)img_tblテーブルに
id=2、data=denpa13.JPGのファイル内容(バイナリ)の形で保存
(2)img_tblテーブルから
id=2、のdataをとってきて表示(=denpa13.JPGが表示されるはず)
■DBにイメージ保存
こんなかんじのPHP
<?php //==============================// // データベースのための値 // //==============================// $host = "localhost"; $user = "root"; $password = "password"; $database = "test"; //==============================// // データを読んでくる // //==============================// $filename = "denpa13.JPG"; $handle = fopen($filename, "r"); $contents = fread($handle, filesize($filename)); fclose($handle); //==============================// // データベース接続 // //==============================// $con = mysql_connect($host, $user, $password) or die("データベースとの接続に失敗しました"); mysql_select_db($database) or die("データベースの選択に失敗しました"); //==============================// // データベースに保存 // //==============================// $esc_contents = mysql_real_escape_string($contents) or die("エスケープ失敗"); $query = "insert into img_tbl(id,data) VALUES (2,'" . $esc_contents ."');"; $result = mysql_query($query) or die(mysql_error()); //==============================// // 表示 // //==============================// header('Content-Type: image/jpeg'); echo $contents; ?> |
ファイル内容のイメージが表示される
■DBからイメージ取得
こんなかんじのPHP
|
DB内容が表示される
■ちなみに、
はじめDBにキーも設定しないで、てきとうにやってたら、
blobのところにデータが入らず、たいへんだった。
DBは、まじめに作ろう・・・??