PHP – 任何想法如何上传网站保存那里的图片?

更多的是与架构相关的问题,对不起,如果我问错了堆栈.

他们把它们放在一个文件夹里吗?
喜欢

$uid.$md5(random).$name save in one
folder

folder/5231.124wdadace123214.arandomname.jpg
folder/42.15125dawdaowdaw232.arandom2name.png
folder/etc

要么

$uid/$md5(random).$name

5231(uid)/12421adwawda2321.arandomname.jpg
42/15125awdawdwadwa232.arandom2name.png
etc/2323awdwadwadaw.logo.png

我在想什么是第二个更好?
因为在Windows我在一个文件夹中有很多照片
是的,打开它需要时间.

你们知道他们如何保存这些文件吗?

最佳答案 我为我的网站编写了一个函数,它将用户ID转换为两级子目录层次结构,在每个级别将子目录限制为1000.

function get_image_dir($gid) {
    $d = str_split(str_pad($gid, 6, "0", STR_PAD_LEFT), 3);
    $wdir = "/images/members/" . $d[0] . "/" . $d[1] . "/" . $gid;
    return $wdir;
}

(我实际上用原始用户ID添加第三级来处理1,000,000的翻转.

/images/members/000/001/1
/images/members/000/002/2
...
/images/members/999/999/999999
/images/members/000/000/1000000
/images/members/000/001/1000001

在这些子目录中,我进一步基于分离

>专辑(由成员组织)
>各种罢工(针对不同的
网站上的地方

最终结构看起来像

/images/members/000/001/1/album1/original
/images/members/000/001/1/album1/50x50
/images/members/000/001/1/album1/75x75
/images/members/000/001/1/album1/400x300

函数中的str_split(str_pad())可能不是最优的,但是现在它可以工作.

点赞