论坛、相册、SNS系统里用户上传的图片是存放在数据库里还是文件系统里更好?
发布网友
发布时间:2022-05-27 10:07
我来回答
共2个回答
热心网友
时间:2023-10-16 10:06
一般情况下,把上传的图片存到文件系统里,数据库里存储这张图片的url,以便找到图片位置。给你个建议,上传后的图片给它重命名一下,名字里最好有个随机数,防止图片重名,这是我的一点经验
热心网友
时间:2023-10-16 10:06
文件需要重命名 文件夹层级结构需要仔细规划 同一个文件夹下如果存太多图片 会影响效率 所以一般都是这么搞:
photo/uid/2012/10/xxx_xxxxxxx.jpg 创建规则可以是 uploadsDir/模块名/[用户id/]年/月/随即产生的文件名
因为文件名是理论唯一且杂序的 所以即使你从url输入 也不可能猜到路径 上面的用户id可以考虑不要如果用户太多了也导致你文件夹建的多 但有用户id有个好处是 直接可以算出用户文件占有量不然你还需要去数据库做累计 缩略图命名规则:xxx_xxxxxx.__20x20__.jpg 用程序来算 这样数据库字段只保存一个 其余路径可以推算 。
大型网站 可能会考虑用分布式文件系统 比如fastDfs等 文件有专门服务器的 并且支持apache或者nginx 有扩展可以直接访问到图片 所以数据库只保存fileId(即文件上传后返回的路径)