想法是将用户个人资料照片存储到文件服务器。我已经完成了将部件上传到静态文件夹,但我想让它有点动态。
文件名生成如下:$userid . '-' . round(microtime(true)) . '.jpg';
我想基于$userid
存储图像,每个文件夹1000个。
因此必须检查$userid <= 1000
和文件夹是否不存在,创建名为000001-100000
的新文件夹。
例如,如果$userid = 1001
必须检查文件夹是否不存在,并创建名称为002001-002000
的新文件夹,依此类推。
我怎样才能动态实现?可能会有超过10万用户,所以我认为检查以下内容并不是最好的想法:
if (!file_exists('images/000001-001000')) && $userid <= 1000 {
mkdir('images/000001-001000', 0777, true);
}
if (!file_exists('images/001001-002000')) && $userid > 1000 && $userid <= 2000 {
mkdir('images/001001-002000', 0777, true);
}
P.S。这不会被标记为重复,我需要为每个文件夹存储1000张照片,而不是为每个用户创建特定的文件夹。
答案 0 :(得分:2)
$count = floor($userid / 1000);
$begin = ($count * 1000) + 1;
$end = ($count + 1) * 1000;
$strBegin = $begin;
$strEnd = $end;
if($begin==1){
$strBegin = "0001";
}
if(is_dir('images/'.$strBegin.'-'.$strEnd)==false){
mkdir('images/'.$strBegin.'-'.$strEnd);
}
答案 1 :(得分:0)
只需生成一次文件夹。如果您无法预测最后一个文件夹,则可以生成5-50个文件夹,并使用cron进行检查;我是否需要生成更多文件夹?
答案 2 :(得分:0)
试试这个我创建了递归方法来检查值。然后根据它创建目录
gradle assemble