人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

PHPとMYSQLに関しての質問です。宜しくお願いします。

MYSQLにBLOB型で画像データ(gif)を保存することは出来ましたが、
逆にこのデータを実際の画像データとして「吐き出す」方法がわかりません。
データは以下のようなテーブルに保存されています。

CREATE TABLE img(
img_id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
img1 BLOB
)TYPE = InnoDB';

ちなみに、画像表示用のスプリクトを作成し <img src=".../img.php?img_id=1"> で画像を表示させることは出来ます。
従って、BLOB型での画像の保存が失敗していると言う訳でも御座いません。

このようなスプリクト経由で表示するのではなく、
DBに保存されているBLOBデータから実際の「静的な画像ファイル」を吐き出した上、画像にアクセスしたいのですがうまく行きません。

以下のようなスプリクトを書いてみましたが、サーバー内に画像は吐き出されませんでした。

----------------
//DBに接続しBLOBデータを取得(sql文等は省略します)
$img = $record["img1"];

//画像を指定デレクトリに出力
$filepath = "/usr/local/apache2/htdocs/public/img/aaaa.gif";
imagegif($img, $filepath);
----------------

良い方法がありましたらご教授ください。
環境は MYSQL5.0.27 PHP5.2.1 GDインストール動作確認済み です。

●質問者: uniuniko
●カテゴリ:インターネット ウェブ制作
✍キーワード:blob DB Gd GIF innodb
○ 状態 :終了
└ 回答数 : 1/1件

▽最新の回答へ

1 ● y-kawaz
●60ポイント ベストアンサー

BLOBに入っているのが既にgifファイルならそのまま保存すればよいのでは?

file_put_contents($filepath, $img);
◎質問者からの返答

ご回答有り難うございます!

今試してみましたら、、その方法で出来ました!

ありがとうございます!!!

file_put_contentsなんてゆうのがあったんですね、、

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ