大量用户图片管理

      当一个项目涉及用户比较多,而且有包含有用户头像的需求时,如何构建图片文件夹就成了一个问题。过去看过一些应用都是以时间来建立文件夹,用户头像按月存,但是这样也会有很多不足,那就是这个月用户增加头像比较多、下个月没几个人添加头像,这样就导致文件夹大小不均,效果也就不一定好。

      所以可以根据用户ID来建立文件夹,以千为单位,最底层文件夹放置图片,最多一千张,上级目录放置底层文件夹,最多也是放以前个文件夹,依次类推,代码如下:

function mkdir_by_uid($uid, $dir = '.') { $uid = sprintf("%012d", $uid); $dir1 = substr($uid, 0, 3); $dir2 = substr($uid, 3, 3); $dir3 = substr($uid, 6, 3); !is_dir($dir.'/'.$dir1) && mkdir($dir.'/'.$dir1, 0777); !is_dir($dir.'/'.$dir1.'/'.$dir2) && mkdir($dir.'/'.$dir1.'/'.$dir2, 0777); !is_dir($dir.'/'.$dir1.'/'.$dir2.'/'.$dir3) && mkdir($dir.'/'.$dir1.'/'.$dir2.'/'.$dir3, 0777); }

你可能感兴趣的:(php)