保存或删除旧的配置文件图像


Save or delete old profile images?

我正在开发一个架构,需要相当可扩展,我想知道如何处理我的用户图像。

目前,我已经将用户的图像存储为如下文件:

/users/{user id}/normal.jpg
/users/{user id}/small.jpg

问题是,我倾向于遇到缓存问题的人的浏览器,例如,当用户上传一个新的图像,它覆盖正常的。jpg和small.jpg,但用户的浏览并没有立即反映变化。

最好不要删除任何图像?

处理此问题的一种方法是使用图像文件最后更改的时间戳作为html代码中的参数。就像

<img src="normal.jpg?t=<timestamp>">

您可以使用函数stat()来计算。

给新上传的图片随机命名,这样可以避免缓存问题。例如:

/users/{user id}/normal_{timestamp_of_upload}.jpg

每当一个新的上传完成,删除旧的,并把新的放在适当的地方。当然,您需要跟踪数据库中某个位置的实际文件名以及用户的其他信息。