从一个项目开始,在组织大量文件的静态存储时遇到困难。对于图像,创建一个表Image,并有一条记录来计算存储路径。如下所示:
代码:
$ image_id = 1665765;
$ paddedId = str_pad ($ image_id, 20, '0 ', STR_PAD_LEFT);
$ path = '/'. implode (DIRECTORY_SEPARATOR, str_split ($ paddedId, 2));在输出中:==> webroor.upload/00/00/00/00/00/00/01/66/57/65/1665765.jpg
$ image_id是需要图片的实体表格中的一个字段($ user-> image_id)。这种方法允许在一个$ image_id的基础上指定图像的完整路径,而不必调用base。当我们明显知道文件的格式时,它就能工作(在这种情况下,总是。Jpg)。但有时用户下载不同格式的图像是必要的。而这种方法是不实用的,因为要做的精神和连接表与文件(图像),以文件的id和计算其扩展路径。由于表映像可能很大(甚至在单独的数据库中)会降低系统性能。请与我们分享你在仓库中的食谱。也许有人知道如何做得更好。
对不起,我的英语不好。
发布于 2012-10-25 18:11:02
有两种方法。
首先,您应该优化您的体系结构,以便在数据库中存储所有文件的完整路径。但是,对于已经存在的大量内容,这并不是一件容易的事情。第二个-你已经将所有上传的文件转换为一个特定的扩展名,例如.jpg,你所有的麻烦都会消失。许多高负载社交网络都使用这种解决方案。
https://stackoverflow.com/questions/13065954
复制相似问题