我正在建立一个允许用户上传其个人资料图片的网站。我想知道哪些是更好的选择(所有这些情况下的文件名都是随机生成的字符串):
将所有文件保存在名为uploads
创建一个以用户的数字用户ID命名的文件夹,并将所有图像放在自己的文件夹中。每次他们上传一个新图像时,我会检查(使用PHP)是否存在以他们的id命名的文件夹,如果是这样的话,不要创建一个新的目录,只是将图像放在现有的
与#2相同,但不检查是否存在以用户ID命名的文件夹,PHP或Linux似乎知道如果已经存在并且使用那个,则使用它。
更好的东西
从绩效的角度来看,哪些会更好。我真的很关心这里的速度。如果我在一个文件夹中拥有成千上万的图像,那么在许多文件夹中检索一个图像似乎需要相当长的时间。而且我不确定将它们组织到子文件夹中会使事情变得更好。
答案 0 :(得分:0)
我使用以下结构:
/**
* Calculate dir tree for object
* Folders starts from 00 to FF (HEX) and can have just as
* many subfolders (I think :)
* @param $id - User ID
* @param $type - Image category
* @return string
*/
function calculateDirTree($id, $type)
{
$hashUserID = substr(hash('md5', $id), -4);
$parentFolder = substr($hashUserID,0,2);
$subfolder = substr($hashUserID,2);
$basePath = $type."/".$parentFolder.'/'.$subfolder.'/';
return $basePath;
}