我有一个简单的问题。现在我正在开发一个电子商务脚本,当然用户可以上传每个产品的图像(每个产品最多10个图像)。所以我的问题是我应该将所有图像放在同一目录中(一段时间后它可能会成千上万)或不时创建新图像吗?如果将它们放在一起,这会降低性能或导致将来出现其他问题吗?
提前致谢
答案 0 :(得分:1)
创建一个img
父目录,其中包含每个产品图像的子目录。
./img
./img/eggs
./img/eggs/eggs1.jpg
./img/eggs/eggs2.jpg
./img/spam
./img/spam/myspamimage.jpg
./img/cheese
...
通过这种方式,您可以将所有图像存储在单个树层次结构中,这非常有意义。如果图像(例如,超过100,000)的数量非常大,您可以根据创建日期对图像进行分组:
./img
./img/2010-08/eggs
./img/2010-08/eggs/eggs1.jpg
./img/2010-08/eggs/eggs2.jpg
./img/2010-09/spam
./img/2010-09/spam/myspamimage.jpg
./img/2010-09/cheese
...
这样,您就可以将几个月(可能是旧版本)移动到存档中,并将month子目录作为指向另一个磁盘的链接。
如果您需要在每张图片上保留大量元数据(例如,用户名,SKU,说明,版权等),您可以使用任意图像名称(可能是img/img0000001.jpg
,/img/img0000002.jpg
存储图像, ...)并保留将产品映射到其图像的数据库记录。这对于搜索具有与之关联的特定特征(用户,创建日期等)的所有图像非常有用。
答案 1 :(得分:1)
我建议你将它们拆分成单独的目录(可能/年/月/其中年和月是图像上传的年份和月份,或者只是做product_id /)。
问题是大多数linux文件系统使用的inode结构。如果目录中的文件数量增加,则需要更多操作。
答案 2 :(得分:0)
就像亚当说的那样。
制作像Images_Products
这样的默认目录在用户上传图像后,使用php.net中的mkdir函数创建目录。
尝试使用他们添加的产品名称中的某个变量动态地创建目录的名称。
示例:$ beer_heineken