• ベストアンサー

画像をDBに登録する方法

$gazou1 = 'base.gif'; $gazou2 = $row['gazou']; $output =uniqid("").'.gif'; $cmd = 'convert -compose over ' . $gazou1 . ' ' . $gazou2 . ' ' . $output; system($cmd,$ret); if ($ret===0){ print '<img src=' . $output . '>'; $outputで生成された画像をDBに登録する方法を教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
  • foreach
  • ベストアンサー率51% (43/84)
回答No.2

まあ、そこまで目くじら立てて怒る必要はないとは思うけど、1さんが言うのも一理あってBLOB形式で格納しようとデータベースに依存しますし取り扱いが非常に面倒です。 (その分、効率的に取り扱いが出来るメリットがある) 一番簡単なのは画像をTEXTデータに変更して格納する手法です。 これだとデータベースの種類にあまり依存せずBLOBと比較しても取り扱いが簡単です。 カラムの種類はMySQLならLONGTEXTなど大きめなTEXT形式を推奨。 // 保存時 $data = base64_encode(file_get_contents(アップロードされた画像ファイル名)); ※$dataはテキストデータになるのでINSERT/UPDATEで保存できます // 読み出し時 $img = base64_decode(DBテーブルのTEXTデータ); // 読み出したデータを保存 $file = fopen(保存するファイル名, "w"); fwrite($file, $img); close $file; こんな感じで行けると思います。 ※適当に書いただけなのであくまでも参考程度に ただし、MySQLは1カラムに格納できるデータ容量がデフォルトで最大1MBまでなのでご注意を。 ※しかもbase64の段階でデータ量が増えます レンタルサーバーだと設定変更が出来ないのでアップロードした後にGDかイメージマジックでリサイズしてあげる処理が必要になるでしょう。

その他の回答 (1)

  • edomin7777
  • ベストアンサー率40% (711/1750)
回答No.1

> $outputで生成された画像をDBに登録する方法を教えてください。 だったら、何のDBを使っているのかぐらい書きなさい。 難しいことから修得しようとするのは勝手だが、少しは自分で調べないと無理だよ?

noname#142703
質問者

補足

mysqlです。

関連するQ&A