我知道在互联网历史的某个地方,这个地方肯定有问题,但我似乎无法确定正确的术语来获取回答我的需要。这个问题很近:What is the best way to store user uploaded files in a website?但我需要更多的细节。用ASP.NET网站和Visual Studio管理用户上传的文件
基本上,你应该如何有效地管理用户上传的文件,例如个人资料照片?我想知道的是关于WHERE制作目录结构的一些“最佳实践”。
上述问题的第二个答案提供了一些选项,例如将它们存储在之外的网页根目录,这正是我最初想到的。但后来我开始思考......
1)我们如何保存数据库中的路径?绝对?相对?每个用户都有一个“ProfilePicPath”列。如果我们想要将整个项目从一台服务器完全拔除到另一台服务器上,并且出于任何原因,我们无法将这些文件放在新服务器上的相同位置?每一个环节都会被打破。
2)应如何处理安全问题?假设我们已将我们的Web应用程序部署为喜欢C:\ websites \ site1,但我们将用户个人资料图片存储在类似C:\ usercontent \ profilepictures \中?在我们加载配置文件图片的页面上,我们如何安全地在后面的代码中以编程方式访问该代码?我们不想把它们放在像C:\ websites \ site1 \ usercontent \ profilepictures \中,对吗?我不喜欢将绝对路径放入数据库,我也不想在后面的代码中的任何位置硬编码路径。
我们最初尝试使用Web项目中的文件,但随后它变成了一种风险,因为这些用户文件是我们项目的一部分。更新/修改网站时,一次错误的复制/粘贴,我们可能会覆盖用户上次从存储库中检出项目后上传的文件等。这是一个巨大的麻烦,整个场景只是向我尖叫,“你这个白痴,你这样做都是错误的......“但我似乎无法找到一个合适的指导来做这件事”是正确的“。
要清楚的是,我们的需求是最小的 - 这只是一个小型项目供内部使用,不超过30个用户,并且全部需要包含在一个IIS 7服务器上。
你是我的英雄。谢谢! – CptSupermrkt 2012-02-21 00:05:50