データベースに画像を保存するには何を使用すればよいですか。PHP と MySQL で画像を保存および取得するために使用する必要がある型。
5 に答える
経験則として、データベースに画像を保存するべきではありません。ブロブは利用可能ですが、かなりくだらないです。
あなたがすべきことは、データベースよりも何倍も高速なファイルシステムにバイナリファイルを保存し、データベースにパス、リンク、またはファイル名を保存するだけで、代わりにアプリケーションにパスからイメージをロードさせることです。
これにより、静的ファイル用の cdn や san ストレージなどを簡単に実装できます。apache ではなく、lighttpd などを使用して静的コンテンツの画像を表示することもできます。
https://blogs.oracle.com/manveen/entry/blob_vs_file_system_storageはもう少し情報を提供しますが、ブロブの欠点に関する統計とデータがウェブ上にたくさんあります
BLOB はファイル ストレージよりも遅い場合がありますが、単一のデータベース ファイルをコピー、バックアップ、および復元する方が、ファイル構造でイメージを管理/維持するよりもはるかに簡単です。
また、画像を独自の専用データベースに保存することもお勧めします (プロパティ/タグ情報を別のデータベースに保存します)。
シンプルで最適化されたオプションは、サーバーに画像をアップロードし、「画像の URL」の文字列をデータベースに保存することです。
実際の画像ファイルのみを保存する場合は、Blob データ型を使用します。
バイナリ ラージ オブジェクトBLOB
を意味するデータ型を使用する
画像をデータベースに保存するのは非常に悪い考えです。データベースは、画像やファイルではなく、小さな情報を保存するように決定されています。そのためにHDDを持っています。
代わりに、画像をディスクに保存し、そのファイル名をデータベースに保存する必要があります。そのように:
$name = uniqid();
file_put_contents($name.".png",$image_data);
mysql_query("INSERT INTO `images` (image) VALUES ('$name.png')") or die(mysql_error());
DB に画像を保存したい場合は、BLOBを使用してください。