1

アップロードされた画像ごとに異なる画像サイズを含むページを設計しています。

For example an image can be:
original: whatever a user uploads
large: 718x405
medium: 344x194
small: 125x70
square: 238x238

以前、mysql では、image_id、image_name というフィールドがあり、コードでこれらのイメージの場所を参照していました。

Example from my past:
/images/gallery/large/some_image.jpg
/images/gallery/square/some_image.jpg

私は他のシステムが次のようなことをするのを見てきました:

/images/gallery/some_image-718x405.jpg
/images/gallery/some_image-238x238.jpg

独自のテーブルに画像を配置するという基本的な考え方は別として、画像用のデータベースを作成するためのベスト プラクティスは何ですか。同じ画像の複数のサイズを扱っている場合は、さらにお尋ねします。

ありがとう!

4

1 に答える 1

2

イメージをフラット ファイルとして保存し、image_id と image_name のみを db に保持します。

/images/<image_id>/original
/images/<image_id>/<width>_<height>

そして、それらのファイルを mod_rewrite と PHP を使用して、好みの URL「形式」で提供します。パフォーマンスが必要な場合は、不必要な DB 接続を避けるために image_name を image_id に一致させるためにある種のキャッシュ (ファイル、memcache) を使用することをお勧めします。

同じスクリプトを使用する PHP セッションがある場合は、画像を提供する前に session_write_close を実行することを忘れないでください。そうしないと、他のすべての画像が 1 つの画像の読み込み中に待機します。

イメージが削除されると、クリアして削除するディレクトリが 1 つだけになります。

于 2012-10-12T07:14:58.703 に答える