MySQLのBLOBを使って、画像ファイルを保存・ダウンロード。 ・テーブルを作成します。データベースやユーザは別途作ってください。 use cblob; DROP TABLE IF EXISTS cblob; CREATE TABLE cblob ( -- イメージファイルテーブル cblob_id SERIAL , -- 固有レコード識別子 name VARCHAR(256) , -- ファイル名 file LONGBLOB , -- ファイル PRIMARY KEY (cblob_id) ) ; ・データを入れます。 <?php $db = new mysqli('localhost', 'cblob', '(パスワード)', 'cblob'); $db -> set_charset('utf8'); $name = "test.jpg"; $file = base64_encode(file_get_contents("test.jpg")); $SQL = "insert into cblob (name, file) values ('{$name}', '{$file}') "; $db -> query($SQL); $db -> close(); ?> ・ダウンロード <?php $db = new mysqli('localhost', 'cblob', '(パスワード)', 'cblob'); $db -> set_charset('utf8'); $SQL = "select * from cblob where cblob_id = 1 "; // cblob_id をパラメータで渡せば、画像ファイルを指定できます。 $rc = $db -> query($SQL); if ($obj = $rc -> fetch_assoc()) { $file = base64_decode($obj['file']); header('Content-Type: image/jpg'); header('Content-Transfer-Encoding: binary'); header('Content-Length: '. strlen($file)); echo $file; } $db -> close(); ?>
MySQL BLOB