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インストール動作確認済み です。

回答の条件
  • 1人10回まで
  • 登録:
  • 終了:2007/12/11 15:28:32
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

ベストアンサー

id:y-kawaz No.1

回答回数1422ベストアンサー獲得回数226

ポイント60pt

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

file_put_contents($filepath, $img);
id:uniuniko

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

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

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

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

2007/12/11 15:28:10

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません