存储和提供用户个人资料图像的最佳方式

时间:2011-10-13 09:42:50

标签: asp.net

我的网站有面向公众的个人资料。用户可能具有向人们显示的145x145个配置文件图像。目前,我将配置文件图像存储在我服务器上的目录下:/images/users/然后我使用.ashx文件为每个页面提供正确的图像:

<!-- from the html -->
<img id="imgLogo" runat="server" alt="Company Logo" src="" />

// from the page code behind Page_Load event
imgLogo.Src = "userImage.ashx?id=" + UserId;

// from the .ashx file
String imagePath = context.Server.MapPath("~/images/users/")+context.Request.QueryString["id"]+".jpg"; 

这个代码在我加入项目时已经到位了(编写它的人已经离开了。)它看起来工作得很好,但我是Web开发的新手,并且不熟悉其他实现这样的系统的方法

我现在需要为网站添加不同类型的图片 - 类似于用户个人资料的高横幅广告。因此,这些图像将比145x145配置文件头像大得多。

我应该如何为我的网站实施这些内容?我应该使用与当前系统类似的系统,将图像存储在/images/users/largeImage中,将src设置为largeUserImage.ashx文件吗?或者我应该将图像存储在我的sql数据库中吗?

我可能希望将来添加更多用户定义的图像 - 可能是用户照片集等类似的东西。有什么我应该考虑制作一个易于扩展的系统吗?

1 个答案:

答案 0 :(得分:1)

由于Gravatar等第三方框架不适用于您的情况,您必须自行完成。

不要在SQL数据库中保存照片,而是保存其路径(不同大小的图像路径)。在userImage.ashx中,您可以传递1个参数来告诉脚本应该提取哪个图像大小,例如:

imgLogo.Src = "userImage.ashx?id=" + UserId + "&size=" + ImageSize;

其中ImageSize是您定义的变量。