每个目录存储4000个映像文件


Storing 4000 image files per directory

所以我想在一个目录中存储大约4k图像,像这样:uploads/uniqid()./file.jpguploads/uniqid()./thumb/file.jpg

现在,问题是我想怎么做,我认为这不是最好的方法。

我想有一个表,在那里我存储的活动目录名称,其中有少于4k的图像。

所以当用户上传图像时,我会在该目录中计数文件,如果它少于4k,我会在那里上传图像,如果目录中有4000个图像,我会使用uniqid()创建一个新的目录名称并将文件放在新目录中,我也会用新的活动目录名称更新表。

我认为这个解决方案是好的,除了我将不得不计数文件每次用户上传的图像,你觉得呢?

计数文件的另一种方法是在表中添加一个计数器(即:autoincrement)字段,并在用户上传文件时在表中插入一行。然后,您可以使用mysql_insert_id()来获取刚刚插入的行的id。

然后添加以下命令,看看是否需要创建一个新目录:

if((mysql_insert_id() % 4000) === 0) {
   //create new dir name
   //insert new dir name into table as active dirname
   //add image to new folder
}
else {
   //add image to active directory
}