我正在设计一个页面,其中包含每个上传图片的不同图片尺寸。
For example an image can be:
original: whatever a user uploads
large: 718x405
medium: 344x194
small: 125x70
square: 238x238
过去,在mysql中,我只有名为image_id,image_name的字段,然后在代码中我会引用这些图像的位置:
Example from my past:
/images/gallery/large/some_image.jpg
/images/gallery/square/some_image.jpg
我见过其他系统做的事情如下:
/images/gallery/some_image-718x405.jpg
/images/gallery/some_image-238x238.jpg
除了将图像放在自己的表中的基本思想之外,为图像创建数据库有哪些最佳实践。当你处理同一图像的多个尺寸时,我会问更多。
谢谢!
答案 0 :(得分:2)
我会将图像保存为平面文件,并仅在db。中保留image_id和image_name。
/images/<image_id>/original
/images/<image_id>/<width>_<height>
使用mod_rewrite和PHP为这些文件提供你喜欢的URL“格式”。如果您需要性能,可以使用某种缓存(文件,内存缓存)将image_name与image_id匹配以避免不必要的数据库连接。
如果您使用相同的脚本进行PHP会话,请记住在提供图像之前执行session_write_close,否则所有其他图像将在加载一个图像时等待。
删除图像后,您只能清除和删除一个目录。