我的网站有面向公众的个人资料。用户可能具有向人们显示的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数据库中吗?
我可能希望将来添加更多用户定义的图像 - 可能是用户照片集等类似的东西。有什么我应该考虑制作一个易于扩展的系统吗?
答案 0 :(得分:1)
由于Gravatar等第三方框架不适用于您的情况,您必须自行完成。
不要在SQL数据库中保存照片,而是保存其路径(不同大小的图像路径)。在userImage.ashx
中,您可以传递1个参数来告诉脚本应该提取哪个图像大小,例如:
imgLogo.Src = "userImage.ashx?id=" + UserId + "&size=" + ImageSize;
其中ImageSize是您定义的变量。