C# 在我的asp.net mvc网站上拥有用户管理的图库的最佳方式是什么
我有一个网站,其中一个页面是一组静态图片。用户希望能够上传自己的图片,并将其显示出来,而不是静态列表。我看到这样的代码解释了一个错误。我正在试图弄清楚是否应该将图片存储在web服务器文件系统、SQL server数据库或其他地方C# 在我的asp.net mvc网站上拥有用户管理的图库的最佳方式是什么,c#,asp.net-mvc,image,C#,Asp.net Mvc,Image,我有一个网站,其中一个页面是一组静态图片。用户希望能够上传自己的图片,并将其显示出来,而不是静态列表。我看到这样的代码解释了一个错误。我正在试图弄清楚是否应该将图片存储在web服务器文件系统、SQL server数据库或其他地方 这里有关于最佳实践的建议吗?在文件系统中存储更容易实现,您可以利用目录结构。但是,如果您需要的不仅仅是简单的Hirrachy结构(例如标记),那么很可能需要一个数据库来进行索引(可以是SQL server或XML数据库) 第二个问题来了。如果需要索引,元数据存储在DB中
这里有关于最佳实践的建议吗?在文件系统中存储更容易实现,您可以利用目录结构。但是,如果您需要的不仅仅是简单的Hirrachy结构(例如标记),那么很可能需要一个数据库来进行索引(可以是SQL server或XML数据库) 第二个问题来了。如果需要索引,元数据存储在DB中,那么实际的二进制图像数据呢?将二进制文件放入SQL很容易维护,但您需要从web服务器实现自定义缓存策略(将图像数据转储到web服务器本地磁盘驱动器),以避免web/db之间的过多通信 另一方面,您只需将密钥保存在db中,并将映像保存在本地磁盘(web服务器)中,这很容易实现,但可能会出现两个问题:
在链接的示例中,您建议程序员使用xml文件。 此解决方案适用于低带宽站点和少量图像。 但是如果两个用户同时上传一个文件会怎么样呢?第二个用户可能会收到错误,因为xml文件已经在使用中 我建议您将图片存储在文件系统中,并将图片元数据(描述、标记、地理标记…)存储在数据库中 避免将二进制数据存储在数据库中。你会得到一个非常低效的db性能和非常大的尺寸