我正在开发一个需要相当可扩展的架构,我想知道如何处理我的用户图像。
目前,我一直将用户的图像存储为如下文件:
/users/{user id}/normal.jpg
/users/{user id}/small.jpg
问题是我倾向于使用人的浏览器遇到缓存问题,例如当用户上传新图像时,它会覆盖normal.jpg和small.jpg,但用户的浏览不会立即反映出更改。
不删除任何图片会更好吗?
答案 0 :(得分:2)
您可以处理此问题的一种方法是使用图像文件最后一次更改的时间戳作为html代码中的参数。 像
这样的东西<img src="normal.jpg?t=<timestamp>">
您可以使用函数stat()
来计算它。
答案 1 :(得分:1)
为新上传的图片提供任何类型的随机名称,这应该可以消除缓存问题。 例如:
/users/{user id}/normal_{timestamp_of_upload}.jpg
每当新的上传完成后,删除旧的上传并将新的上传到位。当然,您需要跟踪数据库中某处的实际文件名以及用户的其他信息。