上传用户个人资料照片 - 指南

时间:2011-01-17 17:46:33

标签: c# asp.net-mvc

我希望用户能够上传个人资料图片的图片。

是否有关于如何最好地处理此问题的指导方针? 例如 - 保存图像的位置?和要使用的文件夹结构。 - 让用户难以浏览每个人的个人资料照片吗?

感谢。

2 个答案:

答案 0 :(得分:5)

如果你自己写这篇文章,我不是故意要弄湿毯子,但我会用http://en.gravatar.com

但要直接回答你的问题:

  

是否有关于如何最好地处理此问题的指导原则?例如 - 保存图像的位置?和要使用的文件夹结构。 - 让用户难以浏览每个人的个人资料照片吗?

通常这将在很大程度上取决于服务器环境的设置。你有多个网络服务器吗?您是否有要使用的数据库服务器?您是否只有想要使用的图像域?等

最简单的方法是将它们写入文件系统并使用代码来检索它们。通过不将这些文件写入您的Web目录,您可以确保用户无法使用它来在您的服务器上执行代码或脚本。使用ASPX页面返回图像内容还允许您随时重新定位图像存储。

至于防止浏览,我只会使用为每个用户生成的唯一图像标识符。顺便说一句,我不会使用用户的内部“ID”字段;相反,只为图像创建一个新的ID。

答案 1 :(得分:2)

如果仅显示单个用户的图片,我建议您实施Gravatar而不是自己的方法。有很多文章说明如何用ASP.NET MVC实现Gravatar最好。

如果你真的想拥有自己的解决方案,我建议给所有用户的个人资料图片一个随机文件名(例如GUID“3F2504E0-4F89-11D3-9A0C-0305E82C3301.jpg”)。