イムこの質問はそうここに私のバージョンが行く、倍の千を依頼されていることを確認...アップロード画像均等にディレクトリ構造に
私は、画像をアップロードフォームを持っている... すべての画像は、一意のIDが含まれています。私は私のUNID IDを生成するには、次の機能を使用します。
function generateUnid($key) {
$name = $_FILES[$key]['name']; //get image name from global variable $_FILES
$ext = pathinfo($name, PATHINFO_EXTENSION); //get image extension
$prefix = 'fc'; //prefix for unid
do {
$unid = uniqid($prefix, true); //generate a unid
$filename = $unid . '.' . $ext; //replace image name with unid
$path = PATH_UPLOAD_ARTWORK . $filename; // image path
} while (file_exists($path)); // check if the image name exists
return $filename;
}
は、戻り値のサンプルです:
fc4e7801523a04e6.06876802.jpg
これまでのところは良いです。さて、私は私の画像のためのディレクトリ構造のいくつかの並べ替えを作成したい。似たような何か:私はおそらく正しいディレクトリに画像を提出するための私の固有のIDの最後の2つの整数を得ることができ
0
0
1
2
fc4e7801523a04e6.06876802.jpg
...
3
...
1
0
1
2
3
...
2
0
1
...
。しかし、私はそれが正しい戦略であるかどうかわからないようだ... にはどうすれば画像がフォルダに均等に提出されていることを確認することができます。私は、私はそれを私のUNIQの最後の2つの数値を抽出することにより、正しい道をやっている
... 12枚の000の画像と1枚の500画像をひとつのフォルダが含まれている一つのフォルダと私の自己を見つけることしたくないですか?イメージを均等に提出するためのより良い方法はありますか?
おかげ
あなたは、このような任意のバケットにファイルを置きたい私はなぜだろうか?非常に多数のファイルを予測し、同じディレクトリに多数のファイルが格納されている場合にOSのパフォーマンスの問題が発生するのを避けるためですか?なぜ、日付やユーザー名などのように保存しないのですか? – aaaidan
正確に!私は事前に予測して計画したい。私はこのメソッドを多くの場合に使用するのを見てきました。私は写真が非常に多く、後で性能問題に遭遇しないという事実が好きです。一つだけのアップロード画像を - 私、そして私は数日または数ヶ月のための束一日と何をアップロードすることができ...だから私は、名前のOの日付を使用can't ... – Marco
そう...あなたが潜在的にアップロードすることができることを考えますあなたのOSのファイルシステムで快適に処理できるよりも、1日で多くのファイルがありますか? – aaaidan